正在学习swift中,看了一遍英文文档,现在是在看第二遍,顺便总结出一些知识点,如果有哪里说明值得质疑的地方,请留言/回复指出,谢谢!
常量与变量都会有一个关联的名字(如maximumNumberOfLoginAttempts或者welcomeMessage),
有特定的类型(如数字10或者字符串"Hello")。常量的值一旦设置就不能再修改,而变量的值在将来是可以修改为不同的值的。
声明常量与变量
常量与变量在使用前必须先声明。使用let关键字声明常量,而变量是使用var关键字来声明。
看下面的例子:
// 分号加不加都行,如果看不习惯,可以自行添加 // 声明了一个名叫maximumNumberOfLoginAttempts的常量,由于没有指定类型,而又进行了初始化,其值为10, // 所以swift会自动推断出常量maximumNumberOfLoginAttempts的类型为Int // 这个写法相当于:let maximumNumberOfLoginAttempts: Int = 10 let maximumNumberOfLoginAttempts = 10 // 声明的currentLoginAttempt是一个变量,在其他地方可以修改这个变量的值 // 这里没有显示指定变量的类型,但因为有了初始值0,因此Swift会推断出这个变量的类型为Int // 因此下面的写法相当于:var currentLoginAttempt: Int = 10 var currentLoginAttempt = 10 可以在一行声明多个变量,变量之间用逗号隔开 // swift在推断浮点类型时,默认会使用Double类型,下面相当于: // var x: Double = 0.0, y: Double = 0.0, z: Double = 0.0 var x =
NOTE
如果在你的代码中不希望某个储存的值发生改变,那么总是用let关键字声明为常量。
使用变量只用于值需要改变的。
类型说明(Type Annotation)
上面的注释中已经用到了类型说明,其实就是在声明变量或者常量的同时显示指定变量或者常量的类型
// 这样写法是错误的,因为我们没有指定类型,而swift又没有具体的初始值来判断 // 我们希望这个变量的类型 var welcomeMessage //Error 那么我们有两种方式处理,一种是给定一个初始值让swift帮助我们推断出类型,另一种是我们显示指定类型 var welcomeMessage: String // 我们想要的是String类型 var welcomeMessage = "Hello" // swift会根据这个初始值判断出类型为StringNOTE
在实际的工作中,很少需要写明类型说明。如果在定义变量或者常量的时候就提供了初始值,
那么Swift总是会推断出该变量或者常量的类型。
命名常量、变量
swift中可以使用Unicode字符
let n = 3.14159 let 你好 = "你好,Swift" // 虽然可以用中文作为变量名,但我不建议这么做。。。个人建议
打印常量、变量
// 在swift中打印语句可以用println,print // 前者是打印最后添加了一个换行,后者则没有添加 println(welcomeMessage) // 会换行 print(welcomeMessage) // 不会换行 // 注意到这里打印的方式了吗?使用\()把变量放到括号中 println("The welcomeMessage is \(welcomeMessage)")