首先要说的是,Swift是一门动态语言,和其他语言定义变量一样的是必须有一个数据类型,不同的是其数据类型并不是在定义变量时指定的,而是在程序运行到为变量第一次初始化的时候才会确定数据类型,当然你也可以在定义的时候就为其指定数据类型。
关键字:
常量用关键字let定义
变量用关键字var定义
在Java中定义一个变量,我们可能需要这样做:
public int id = 2000;
public String name = "Seven";
如果不加数据类型比如这样:
public id = 2000;
public name = "Seven";
如上写法都是无法正确编译的。
而在Swift中却可以如此任性。
var id = 2000
var name = "Seven"
如上写法都是可以的,都会在编译的时候自动推倒其数据类型,等同于:
var id:Int = 2000
var name:String = "Seven"
但是,需要注意的是,如果不指定变量的数据类型,该变量必须被初始化!
var id // × 不合法,必须初始化
var id = 2000 // √ 合法
如果定义时不想初始化怎么办?那就要为其指定数据类型了,如下写法即可
var id:Int //合法
而对于常量来说,再定义的时候不管是否指定数据类型,其都要就行初始化。
let const1 //不合法,常量必须初始化
let const2:Int //不合法,常量必须初始化
所以定义常量必须初始化
let const3 = 20 //合法,不指定数据类型,动态推倒
let const4:Int = 20 //合法,指定数据类型
不管是变量还是常量,一旦确定了数据类型,不能后期改变的。
var value = "abc"
value = 20 //编译错误,因为value已经确定了是字符串类型,不能再次被定义为Int类型。
初次之外还要注意,如果变量或者常量在定义时未定义数据类型,初始化什么值都可以。一旦指定了数据类型,必须初始化与数据类型相符的值。
var value:String = 222 //错误 必须的是字符串类型 比如"222"