swift的变量和常量和OC中的不一样,定义常量用let
,定义变量用var
。
举个例子,如下:
var x = 10
let y = 20
print(x+y)
这段代码写出来汽车会有个警告,
意思就是
x
从未改变,建议使用let
。有个特殊的例子:
let v = UIView() //修改图像属性
v.backgroundColor = UIColor.red//仅仅修改的是v的属性,并没有修改v的指针地址
所以这句是不会报错的。
还需要注意的就是,在不同类型的数据之间,不允许之间运算。通常可以这样做:
// 1.将y转换成整数
// oc中的写法(int)y => 类型强转
//swift中Int(y)'结构体'的构造函数
let x = 10
let y = 10.5
print(x + Int(y))
print(Double(x) + y)
还可以这样做:
//如果需要制定变量/常量的类型,也可以直接使用let x:类型 = 值
//提示:在swift开发中,极少使用直接制定类型,通常都是自动推导
let x:Double = 10
let y = 100.5
print(x+y)
总结
关于var和let的选择:通常不可变的更安全,开发的时候,通常都先使用let,在需要变化的时候,再改成var。
自动推导,变量/常量的类型会根据右侧代码执行结果,推导对应的类型,可以使用热键:option + click查看类型。
在swift中对类要求异常严格,任何不通类型的数据之间,不允许直接运算,不会做默认的隐式转换,所有的类型确定,都要由程序员负责!