Swift是建立在OC和C的基础之上,有一下类型:
-
Int
整型 -
Double
和Float
是浮点型 -
Bool
是布尔型 一般返回值为true
和false
-
String
是字符串 -
Array
集合 -
Dictionary
字典 -
Tuple
元组 -
Optional
可选
此外,Swift是一门类型安全的语言。
常量和变量
-
let
声明一个常量 -
var
声明一个变量
let a = 10 ; a = 5 报错
a 的值不能被改变 由于使用let
var b = 10 ; b = 5 通过
b 的值可以改变
类型标注
let a:String = "hello J" ; a = 10 报错
a 不能改变为10 因为a已经被定义成为了字符串
let b:Int = 10 ; b = 7 通过
b 的类型依旧是Int
注释
简单注释
//这个是一个注释
多行注释
/* 这是一个, 多行注释 */
复合注释
/* 这个是第一个注释的开头 /* 这个是第二个被嵌套的注释 */ 这个是第一个多行注释的结尾 */
分号
在swift中不需要在句末添加分号,有一种情况下使用分号是你要写多条独立语句
var a = 10 ; a = 11
类型安全和类型推测
我们不需要在每次声明的时候都给声明的对象安上:String
或者是Int
Swift会自动进行类型检测,将类型不匹配的标记为错误
let a:String = 10 ;等价于 let a = 10
布尔值
Swift中布尔值叫做Bool,只能为真或者假,分别是true和false
let a = ture ; let b = false
if a { print "it is true "} else { print "it is false "}
此外 let i = 1 ; if i {} //会报错 必须是 if i == 1 才可以通过
元组
元组是可以把多个值组合成为一个复合值,元组内的值可以使任意类型,并不要求是相同类型。
let a:(String,Int) = ("a",2)
let a = ("a",2) 等价
访问元素时可以使用下标_ 来忽略只访问单个元素
可选
这是Swift中提出的新概念,在OC中相当于一个方法要不要返回一个对象要不返回nil,nil表示缺少一个合法的对象
let a = "123" ; let b = Int(a)
将a转化为数字Int类型,但是查看b的时候会发现b = Int? 说明b要么为Int类型 要么没有值
由此可以使用if语句来进行辨别一个可选是否有值
if b != nil {print("true")} else {print("false")} //true
当我们确定一个可选是有值的情况下,我们可以使用在名字后面“!”来获取值,这个被叫做强制解析。
不能解析一个没有值的可选,这样会运行错误。
在swift中,nil和OC中的nil不一样,前者是一个确定的值,表示没有。后者是一个指向不存在对象的指针。
断言
let age = -3
assert(age >= 0)
编译不会通过,断言会触发
断言使用的情况:条件为假时使用断言,但是最终一定要爆炸条件为真,这样代码才能继续运行。
- 整数的附属脚本索引被传入一个自定义附属脚本实现,但是下标索引值可能太小或者太大
- 需要给函数传入一个值,但是非法的值可能导致函数不能正常执行。
- 一个可选址现在是nil,但是后面的代码运行需要一个非nil值