近期開始学习swift。把学习的过程和总结整理成一个系列。方便日后回想总结。
基本的语法
基础语法
swift中每一行结束后不须要加分号。多个语句在同一行内须要用分好隔开
//表示凝视。或者用/* ……*/
常量
常量是指定义之后无法改动值的量,比方设置一个最大尝试登陆的次数,它的值一旦被确定,就不应该在程序中被改动。swift中的常量用let表示。定义方法例如以下:
let maxAttemptTime = 3 //正确
maxAttemptTime = 4 //错误。常量一旦定义不能够改变
let maxAttemptTime //错误
另外要注意的是,常量在定义的时候必须要赋初值,当然也能够不这么做,后面会具体介绍。
变量
和常量类不同的是。变量用var表示,能够任意改变值
var currentAttemptTime = 1 //正确
currentAttemptTime = currentAttemptTime + 1 //正确
打印常量和变量
OC中的NSLog方法依旧可用,也能够用swift的println()方法。
NSLog("hello world")
println("hello world")
//以上两句等价,输出结果都是"hello world"
//也能够打印变量或者常量
var name = "kt"
NSLog("name = (name)")
println("name = (name)")
//以上两句等价,输出结果都是"name = kt"
swift也支持print方法,与println不同的是。println在结尾会自己主动加上换行符,这与java的语法是一致的。
类型
类型推导
习惯了oc、c++或者java的程序员会认为没有变量的类型非常奇怪,事实上swift和php与js相似,都是支持类型推导功能的。
所谓的类型推导,就是说swift会依据变量的实际值,自己主动推导出变量所属的类型。
swift中的基础类型有Int、Double、String、UInt8、Character、Bool等。
就不一一解释了。Swift中全部的类型都是首字母大写的。
var name = "kt" //自己主动推导为String类型
var age = 20 //自己主动推导为Int类型
var pi = 3.1415926 //自己主动推导为Double类型
宽类型优先
既然swift支持类型推导。那么π的近似值3.1415926。会被推导为什么类型呢?是Float还是Double? 答案是Double,由于swift具有宽类型优先的特性,也就是为自己主动推导为取值范围更宽泛的类型。
类型标注
最開始提到必须要给常量或者变量赋初值,假设不想赋初值,或者不习惯自己主动类型推导。我们还能够显示的给常量或者变量标注类型,这被称为“类型标注”
var name: String //在变量名后加上冒号和类型名来进行类型标注
//经过类型标注后。能够不赋初值
var name: String = "kt" //人为标注为String类型
var age: Int = 20 //人为标注为Int类型
//这样的情况下的类型标注有些多此一举
类型安全
swift支持类型推导,这个功能非常方便,与此同一时候,swift也是严谨的。由于它是类型安全的。
所谓的类型安全是指。不支持常量、变量之间的隐式类型类型转换。
var a = 1
var b = 1.5
var c = a + b //报错
也就是说。不同类型的变量(常量)不能够出如今”+、-、*、/等运算符两側”。
所谓的常量、变量之间,事实上是指字面量之间的隐式类型转换是能够的。
比方例如以下代码:
var pi = 3 + 0.1415926 //这个必须能够啊,否则就乱套了。
类型转换
假设我希望把整数型和浮点型变量相加怎么办呢,能够使用强制类型转换,又称显式类型转换。
var a = 1
var b = 1.5
var c = a + b //报错
var c = Double(a) + b //正确,得到值为2.5的Double型变量c
var c = a + Int(b) //也正确。得到值为2的Int型变量c
须要说明三点:
- 精度由高向低或者由低向高都能够。只是高精度转向低精度会丢失小数点后的数据。
- 上述代码不能够改为“var c = Float(a) + b”,理由是类型安全 + 宽类型优先。
- 注意和C语言的语法差别,C语言中的写法为(int)a,swift中的括号应加在变量上。
类型别名
通过typelias关键字能够又一次命名类型,相似于C语言中的typedef,只是更简单。
typealias Name = String //如今Name类型和String类型是全然一样的了。
var myName: Name = "kt"
附录
查看完整专栏——《Swift轻松入门》
【Swift入门(一)——基本的语法】
【Swift入门(二)——字符与字符串】
【Swift入门(三)——元组(Tuple)】
【Swift入门(四)——可选类型(Optionals)与断言(Assert)】
【Swift入门(五)——数组(Array)】
【Swift入门(六)——字典(Dictionary)】
【Swift入门(七)——结构体(Struct)】
【Swift入门(八)——功能强大的求余运算符】
【Swift入门(九)——String与Int、Double、Float等数字相互转换】
【Swift入门(十)——循环引用、弱引用和无主引用】
【Swift入门(十一)——类型转换与is、as操作】
【Swift入门(十二)——利用Extension加入逆序输出字符串方法】