1.写在前面
Swift支持所有C和OC的基本类型,支持面向过程和面向对象的编程机制,是一种类型安全的语言,需要OS X以及以上系统支持
新特性:元组,可选类型
playground,只用来快速体验Swift语法和测试API
2.数据类型声明及赋值
声明:变量 var 常量 let 允许一条语句换行
var name = "lucky" var age:Int var str:String = "str"
占位符:用 "\(变量名)"的方式表示,比如println("his name is \(name)")
整型:用Int表示即可,注意整型之间的转换必须是显式转换
浮点型:相比其他语言,Swift中可以用0.0作为除数,得到的结果-inf表示负无穷,+inf表示正无穷。0.0/0.0得到nan(not a number)
元组:比如:var person:(name:String,age:Int)。可以在定义时直接赋值,可以使用key值赋值,比如person.name = "susan"
可选类型:任何已知类型后面紧跟?即可表示可选类型
强制解析:在变量或常量后面添加! 注意:必须可选类型的变量和常量确实有值的时候才能解析成功,如:
let num1:Int?=10
let num2:Int?=20
if num1 != nil && num2 != nil{
let sum = num1! + num2!
print(sum)
} else {
print("不能进行强制解析");
}
隐式解析可选绑定:定义时类型后面跟的是!,在使用时不再进行强制解析
3.运算符
(这里只说Swift的特性)
Swift让所有数值类型都支持了基本的四则运算(当然,不同数据类型不支持)
"hello"+"world" // 结果是"helloworld"
Swift默认不允许数值在运算过程中出现溢出情况,所以可以使用溢出运算符
赋值运算符= 赋值表达式是没有值的,不支持连续赋值
算数运算符(0.0/0.0得到nan)求余运算结果的符号取决于被除数
溢出运算符:在+-*前面加一个&符号,(没有&/) 实际上进行的是二进制操作
区间运算符:a..<b 表示包含a不包含b(半开区间) a...b 表示包含a也包含b(闭区间)
特征相等运算符 === 特征不等运算符!==
nil合并运算符:两个变量之间加?? 比如a ?? b 表示如果a包含一个值就进行解封,否则就返回一个默认值b
注意:表达式a必须是可选类型,默认值b的类型必须要和a存储值的类型保持一致
如果a为非空值,那么b将不会被估值