前言
最近在學(xué)習(xí)Swift這門(mén)新語(yǔ)言,對(duì)于熟練掌握OC編程的iOS開(kāi)發(fā)者來(lái)說(shuō)其實(shí)很容易上手,但Swift的確在語(yǔ)法和編程習(xí)慣上改變了很多,對(duì)于從未了解OC語(yǔ)言而從Swift開(kāi)始學(xué)習(xí)iOS開(kāi)發(fā)的新手來(lái)說(shuō)可能上手有一定難度,下面我將這段時(shí)間的學(xué)習(xí)成果結(jié)合在網(wǎng)上搜索的知識(shí)做一個(gè)簡(jiǎn)單的匯總,希望可以幫助到正在學(xué)習(xí)Swift的小伙伴們。
變量和常量的定義
Swift開(kāi)發(fā)文檔中是這樣定義變量和常量的:常量和變量把名字和一個(gè)特定類(lèi)型的值關(guān)聯(lián)起來(lái)。常量的值一旦設(shè)置好便不能再被更改,然而變量可以在將來(lái)被設(shè)置為不同的值(見(jiàn)名知意,很簡(jiǎn)單了啦)
如何聲明變量常量
常量和變量必須在使用前被聲明,使用關(guān)鍵字 let 來(lái)聲明常量,使用關(guān)鍵字 var 來(lái)聲明變量。舉個(gè)簡(jiǎn)單的例子:
class Person: NSObject { let life = 1 var age = 0} 這里我們有一個(gè)Person類(lèi)繼承NSObject,顯然人的生命只有一條應(yīng)該設(shè)置為不可以改變的常量,但是人的年齡是隨著時(shí)間變化的應(yīng)該聲明為變量,同理,當(dāng)你在開(kāi)發(fā)過(guò)程中有類(lèi)似需求時(shí)應(yīng)該這樣來(lái)選擇何時(shí)使用變量、何時(shí)使用常量。
當(dāng)然我們可以選擇一行代碼以逗號(hào)分隔的形式申明多個(gè)簡(jiǎn)單的變量或常量如下所示:
var a = 0, b = 1.0, c = "CoderYQ"
這里需要講解一下關(guān)于Swift中的類(lèi)型安全和類(lèi)型推斷。Swift 是一門(mén)類(lèi)型安全的語(yǔ)言,即你必須時(shí)刻清楚此時(shí)代碼需要處理的值的類(lèi)型,編譯器會(huì)進(jìn)行類(lèi)型檢查,任何不匹配的類(lèi)型都會(huì)被標(biāo)記為錯(cuò)誤當(dāng)然更不能參與運(yùn)算。當(dāng)你操作不同類(lèi)型的值時(shí),類(lèi)型檢查能幫助你避免錯(cuò)誤。當(dāng)然并不是所有的變量和常量都需要明確指出一個(gè)確定的類(lèi)型,如果你沒(méi)有為申明的變量或常量指定類(lèi)型,Swift 會(huì)使用類(lèi)型推斷的功能推斷出合適的類(lèi)型,通過(guò)檢查你給變量賦的值,類(lèi)型推斷能夠在編譯階段自動(dòng)的推斷出值的類(lèi)型,這就是Swift中類(lèi)型推斷。就像上面的連續(xù)申明變量a、b、c的代碼中我們并沒(méi)有明確指出a、b、c的類(lèi)型,編譯器則是通過(guò)你給a、b、c賦的值來(lái)推斷a、b、c的類(lèi)型分別為:Int類(lèi)型、Double類(lèi)型、String類(lèi)型。
但是在某些必要時(shí)刻我們是需要給申明的變量或常量提供類(lèi)型標(biāo)注的,以此來(lái)明確他們能夠存儲(chǔ)的值。添加類(lèi)型標(biāo)注的方法是在變量或常量的名字后邊加一個(gè)冒號(hào),再跟一個(gè)空格,最后加上要使用的類(lèi)型名稱(chēng)(這里和OC中不太一樣,需要大家適應(yīng)一下),如下所示的代碼效果其實(shí)和上面的是一樣的:
var a: Int = 0var b: Double = 1.0var c: String = "CoderYQ"
如果變量的類(lèi)型都一樣,我們還可以這樣申明:
var a, b, c : Double
變量和常量的命名
常量和變量的名字幾乎可以使用任何字符,甚至包括 Unicode 字符:
let π = 3.14159let 你好 = "你好世界"let
注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到swift教程頻道。
新聞熱點(diǎn)
疑難解答
圖片精選