swift笔记-基础篇

Swift 是一门开发 iOS, macOS, watchOS 和 tvOS 应用的语言

基础数据类型:整型(Int); 浮点型(Double or Float); 布尔型(Bool); 文本型(String)

基本的集合:数组(Array)、集合(Set)和字典(Dictionary)

高阶数据类型:元组(Tuple)

常量和变量

常量设定之后就不能更改;变量可以随意更改

声明:常量用let;变量用var

//声明一个 constant 常量,值是 10let constant = 10 //声明一个 variable 变量,初始值 10 var variable = 10 //将 variable 改为 20variable = 20//声明多个变量 用“,”隔开var a=1, b=2, c=3

注释:

// 单行注释/*多行注释*/

命名:包含几乎所有的字符

let a = 123let 汉字 = “汉字”let = “表情”

注意:

命名不能包含数学符号,箭头,非法的Unicode 码位,连线与制表符。不可以数字开头,其他地方可以包含数字。

输出:print()

// 输出print(“输出”)// 123print(a)// 输出 is 123print(” 输出 is (a)”)

类型推断和安全

  • 推断:根据你赋值的值来推断出是什么类型的数据
  • 安全:如果你的代码需要一个 String,你绝对不可能让你传入其他类型的数据

// a 会被推测为 Int 类型let a = 123// b 会被推测为 String 类型let b = “123”// c 会被推测为 浮点 类型let c =3.1415926

整数

Swift 提供了8、16、32和64位的有符号和无符号整数类型

Int :存储的整数范围( -2,147,483,648 ~ 2,147,483,647),在一般情况下够用了

  • 在32位平台上,Int 和 Int32 长度相同。
  • 在64位平台上,Int 和 Int64 长度相同。

UInt:特殊的无符号类型(尽量不要使用 UInt)

  • 在32位平台上,Int 和 Int32 长度相同。
  • 在64位平台上,Int 和 Int64 长度相同。

浮点数

有小数部分的数字: 3.1415926、 -3.1415926;比整型表示的范围更大

  • Double 64 位,精度要求高使用的类型;至少有 15 位小数
  • Float 32位,精度要求不高使用的类型;只有 6 位小数

布尔

Swift 有两个布尔常量,true 和 false

let a = truelet b = false

布尔使用

let a = trueif a { print(“真”)} else { print(“假”)}

别名

typealias 关键字来定义类型别名

// 定义别名typealias IntTypealias = Int// 使用var a = IntTypealias.min var b = Int.min// a 等价于 b

元组

元组(tuples)把多个值组合成一个复合值。元组内的值可以是任意类型。

// a 的类型是 (Int, String, Double)let a = (1, “汉字”, 3.1415926)

元组分解

let (b,c,d) = a// 输出: 1print(b)// 输出: 汉字print(c)/*如果你只需要一部分元组值,分解的时候可以把要忽略的部分用下划线(_)标记*/let (e,_) = a// 输出: 1print(e)//通过下标来访问单个元素,下标从零开始print(“第一个: (a.0)”)// 第一个:1print(“第二个: (a.1)”)// 第二个:汉字//定义元组的时候给单个元素命名:let f = (key: 10, val: “汉字”)// 10 print(key)

元组不适合用来创建复杂的数据结构,数据结构比较复杂,用类或结构体去建模

可选型和nil

可选类型表示:有值或者没有值

nil 不能用于非可选的常量和变量

var a: Int? = 10a = nillet b = “123”// c 推测为 可选类型// Int(b) 有可能不能转let c = Int(a)

可选绑定

if let a = Int(b) { print(“‘(b)’ 可以转换成 (a)”)} else { print(“‘(b)’  转换失败”)}

?和 !

//表示 a 是可以选类型let a:string? = “1234”// b 一定有值let b:String! = “5678”let c = a!// 需要感叹号来获取值let d = b// 不需要感叹号来获取值

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
用户投稿
上一篇 2022年6月23日 12:29
下一篇 2022年6月23日 12:30

相关推荐

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息