常量和变量
在swift中,常量和变量必须先声明,使用 let 来声明常量,使用 var 来声明变量;
let iCanNotChange = 10
var iCanChange = 10
常量仅可以赋值一次,多次赋值Xcode将会报错。
var aVarValue
let aLetValue //这两种声明是错误的
var bVarValue: Double
let bLetValue: Int //这两种声明是正确的
在常量或变量声明时,swift是通过初值来推测该常量或变量的类型,若没有初值,则需要类型标注,比如上述代码片段中,“变量名: 类型标注”。
var floatValue: Float //声明一个float类型的变量
var DoubleValue: Double
var IntValue: Int
var aString: String //声明一个String类型的字符串变量
aString = "我是一个字符串"
若没有类型标注,swift会自动根据你的初值而确定一个可能的类型,但是有时并不准确
var countOfEgg = 10 //这个变量被自动识别为Int类型
var red = 0.5 //这个变量被识别为Double类型
这种情况我们如果想要一个初值为1的浮点型最好还是写为1.0,或者使用类型标注来告诉编译器你想要的数据类型。
在swift中,变量或常量名的命名规则非常自由,你甚至可以用符号表情或中文来作为变量名,神奇的是,Xcode同样也会像英文变量名那样提供提示功能!
var 我是一个变量 = 10
var abcde123 = "我是一个字符串"
var ���� = 9.0
常量与变量名不能包含数学符号,箭头,保留的(或者非法的)Unicode 码位,连线与制表符。也不能以数字开头,但是可以在常量与变量名的其他地方包含数字。
一旦你将常量或者变量声明为确定的类型,你就不能使用相同的名字再次进行声明,或者改变其存储的值的类型。同时,你也不能将常量与变量进行互转。
var IntValue = 100
var DoubleValue = 100.0
IntValue = DoubleValue //这是明显错误的赋值,类型不同的数据不可以互相赋值
IntValue = Int(DoubleValue) //这样赋值是正确的
上面代码中,DoubleValue被转换成为Int类型。同样其他类型也可以这样转换。(String类型转换为其他类型后续会提到)