本系列笔记是博主通过观看慕课网liuyubobobo讲师主讲的《玩儿转swift2.0》的课堂学习笔记并整理课堂上讲到的代码,也可通过慕课网app观看他的视频支持他,讲师的所有课堂代码在github上,以及更新的swift3.0的代码,建议还是先过一遍老师的视频,然后再自己敲一遍课堂代码,再反过来复习,相信一定有很大的帮助。
在OC语言中,变量在声明之前要指明其类型,如
NSString *name = @"liuyubobobo";
但是swift类型中,当然变量也有指定的类型,但是在声明的时候,只划分成常量和变量两种。
常量在声明并初始化之后就不能再改变了,变量就是这个量的值可以被不断地改变
常量用let关键字声明,变量用var关键字声明
let maxName = 1000 var index = 2
swift语言特意将常量这个概念提到了和变量相同的高度,其实是鼓励开发者们去思考一个量到底是常量还是变量。很多时候,一个量在声明之后就不再改变了,这个时候苹果建议我们把这个量声明为let,这样这个量对整个计算资源的消耗更少,整个程序也就更加优化。
上面的甩let声明的常量maxName,如果我们在playground中将其赋值为2000,那么编译器报错,并可自动将let关键字修改为var。利用这个特性,除非我们有非常明确的变量生命目的,很多时候我们可以放心将一个量声明为常量let,而这个量在以后的代码可能会被修改,那么可直接通过编译器将let修改为var。
还有一点,跟其他语言不同的是,swift不需要要求在每个语句后强制使用分号,swift语言可以完全不写分号,除非在一行中书写多天语句时,必须显式地加上分号,当然啦,苹果不建议我们在一行书写多条语句,除非有非常明确的需求,
我们发现,每个量在声明时都要加上let或var关键字,那么它们是什么类型的呢?事实上,swift语言有类型推断机制(tyoe inference),就是通过初始化的值推断这个量真正的类型,例如上面的例子中,两个量都被swift推断为Int类型,你可以通过对量使用option键看这个量真正的类型。swift语言是一个强类型语言,很多时候我们不需要想其他语言一样显式地表明一个量的类型。swift语言也支持显示地声明量的类型,例如
let website: String = "www.imooc.com" var a, b, c: Double