1员萍、聲明變量
var str = "Hello,playground"
var是swift語言的關鍵字裳凸,我們可以把關鍵字理解為一種特殊的計算機指令碌奉。var這個關鍵字就是命令計算機為我們創(chuàng)建一個變量,變量的名稱叫做str“郏“=”號是 賦值 操作谅猾,命令計算機把 值 ("Hello,playground")賦給變量str。
我們可以把變量理解為一個盒子鳍悠,盒子的名字就是變量的名稱str税娜,賦值操作相當于在盒子里面放入內容,我們只需要使用盒子的名稱就可以獲取盒子里面的內容藏研。
2敬矩、聲明常量
與變量相對的概念是常量,在swift當中蠢挡,我們用 let 關鍵字來聲明常量
let anotherStr = "Hello,swift"
3弧岳、變量與常量的區(qū)別
變量與常量對應著兩種不同的編程世界觀凳忙。變量顧名思義,可以被改變的缩筛,編譯器允許我們對str進行再次賦值
var str = "Hello,playground"
str = "change" // ok,成功修改
但編譯器禁止我們對用 let 關鍵字聲明的內容進行再次賦值消略。
let anotherStr = "Hello,swift"
anotherStre = "change" // error!!!!
在這里我們可以把常量理解為一個有鎖的盒子。
在我們了解“值類型”瞎抛,“引用類型”這兩個概念后艺演,我們會更多理解可變與不可變的含義。swift用let與值類型完整的定義了不可變桐臊。如果你目前還沒有了解這個部分胎撤,那也沒關系,后面我們會進行詳細的描述断凶。
4伤提、為什么需要常量
首先是邏輯上的需要,比方說一天是24個小時认烁,這個值是不應該被改變的肿男,否則會產(chǎn)生邏輯錯誤,因此我們需要讓編譯器幫助我們保證常量在運行期間是一定不會被改變的却嗡。
常量與值類型能有效的避免在多線程編程環(huán)境下所帶來的復雜問題(如果你目前不了解多線程舶沛,那么建議你先從概念上了解一下什么是線程以及為什么需要線程,線程是編程知識的一個重要內容窗价,我們需要有意識的積極補充這部分知識如庭,當然也不要忘了循序漸進。)
5撼港、變量的盒子
為了方便描述變量的賦值坪它,我們把變量比作了一個盒子,這個盒子其實就是計算機的一塊物理內存帝牡。計算機的物理內存是由連續(xù)的物理單元格所構成往毡,每個物理單元格都有自己獨立的物理地址。
var str = "Hello"
如果忽變量的大小和類型問題靶溜,那么當我們聲明str的時候开瞭,計算機首先會為我們開辟一塊內存空間(盒子),然后把"Hello" copy 到這個變量空間中去墨技。