1.寫在前面
Swift支持所有C和OC的基本類型奸攻,支持面向過(guò)程和面向?qū)ο蟮木幊虣C(jī)制蒜危,是一種類型安全的語(yǔ)言,需要OS X以及以上系統(tǒng)支持
新特性:元組睹耐,可選類型
playground辐赞,只用來(lái)快速體驗(yàn)Swift語(yǔ)法和測(cè)試API
2.數(shù)據(jù)類型聲明及賦值
聲明:變量 var ?常量 let ? ? ?允許一條語(yǔ)句換行
var name = "lucky" ? ? ? var age:Int ? ? ?var str:String = "str"
占位符:用 "\(變量名)"的方式表示,比如println("his name is \(name)")?
整型:用Int表示即可硝训,注意整型之間的轉(zhuǎn)換必須是顯式轉(zhuǎn)換
浮點(diǎn)型:相比其他語(yǔ)言响委,Swift中可以用0.0作為除數(shù)新思,得到的結(jié)果-inf表示負(fù)無(wú)窮,+inf表示正無(wú)窮赘风。0.0/0.0得到nan(not a number)
元組:比如:var person:(name:String,age:Int)夹囚。可以在定義時(shí)直接賦值邀窃,可以使用key值賦值荸哟,比如person.name = "susan"
可選類型:任何已知類型后面緊跟?即可表示可選類型?
強(qiáng)制解析:在變量或常量后面添加瞬捕!? 注意:必須可選類型的變量和常量確實(shí)有值的時(shí)候才能解析成功鞍历,如:
? ? ? ? ? ? ?let num1:Int?=10
? ? ? ? ? ? let num2:Int?=20
? ? ? ? ? ?if num1 != nil && num2 != nil{
? ? ? ? ? let sum = num1! + num2!
? ? ? ? ? ? ? ? print(sum)
? ? ? ? ?} else {
? ? ? ? ? ? ? ? ?print("不能進(jìn)行強(qiáng)制解析");
? ? ? ? }
隱式解析可選綁定:定義時(shí)類型后面跟的是!山析,在使用時(shí)不再進(jìn)行強(qiáng)制解析
3.運(yùn)算符
(這里只說(shuō)Swift的特性)
Swift讓所有數(shù)值類型都支持了基本的四則運(yùn)算(當(dāng)然堰燎,不同數(shù)據(jù)類型不支持)
? ? ? ? ? ? ? ?"hello"+"world" // 結(jié)果是"helloworld"
? ? ? ? ? ? ? ?Swift默認(rèn)不允許數(shù)值在運(yùn)算過(guò)程中出現(xiàn)溢出情況,所以可以使用溢出運(yùn)算符
賦值運(yùn)算符= ? 賦值表達(dá)式是沒(méi)有值的笋轨,不支持連續(xù)賦值
算數(shù)運(yùn)算符(0.0/0.0得到nan)求余運(yùn)算結(jié)果的符號(hào)取決于被除數(shù)
溢出運(yùn)算符:在+-*前面加一個(gè)&符號(hào),(沒(méi)有&/) ? ?實(shí)際上進(jìn)行的是二進(jìn)制操作
區(qū)間運(yùn)算符:a..<b 表示包含a不包含b(半開(kāi)區(qū)間) ? a...b 表示包含a也包含b(閉區(qū)間)
特征相等運(yùn)算符 === ? ?特征不等運(yùn)算符!==
nil合并運(yùn)算符:兩個(gè)變量之間加??? 比如a ?? b ? 表示如果a包含一個(gè)值就進(jìn)行解封秆剪,否則就返回一個(gè)默認(rèn)值b
? ? ? 注意:表達(dá)式a必須是可選類型,默認(rèn)值b的類型必須要和a存儲(chǔ)值的類型保持一致
如果a為非空值爵政,那么b將不會(huì)被估值