個人Swift 3入門筆記(2) | 常量和變量

本節(jié)大概花你2分鐘。


聲明

常量的值一旦設(shè)定就不能改變,用let來聲明常量。
變量的值可以隨意更改,用var來聲明變量。

簡單點說就是如果你的代碼中有不需要改變的值,請使用let關(guān)鍵字將它聲明為常量。只將需要改變的值用var聲明為變量。

可以在一行中聲明多個常量或者多個變量,用逗號隔開,例如:

var x = 0.0, y = 0.0, z = 0.0

在 Swift 開發(fā)中可以同時定義多個變量,下面定義中所有變量都是 Double 類型:

var a,b,c:Double

這種聲明在 REPL 模式中會出錯,你需要為它們賦值初始化才能下一步,不過一般開發(fā)并不會跑到 REPL 模式中就是了。

類型標(biāo)注

和其他語言一樣類型標(biāo)注可以說明常量或者變量中要存儲的值的類型。

例如字符串類型的變量:

var testMessage: String

現(xiàn)在我們可以給這個變量賦值了:

testMessage = "Hello"

同樣,我們可以在一行中定義多個同樣類型的變量,用逗號分割,并在最后一個變量名之后添加類型標(biāo)注:

var red, green, blue: Double

但是話又說回來,就算你在聲明常量或者變量的時候沒有指定類型也沒關(guān)系,因為Swift會自己判斷,只要你賦了一個初始值,Swift可以自動推斷出這個常量或者變量的類型。

也就是說你只管確定這是常量還是變量就可以了。

如果你想了解這是怎么回事請參考類型安全和類型推斷,但對于初學(xué)者而言我們暫時避開這個問題,后面我們會再和這些內(nèi)容遇見的。

常量和變量的命名

Swift可以使用Unicode字符命名常量和變量:

let π = 3.14159
let 你好 = "你好世界"
let ?? = "dogcow"

比如像上面這樣的做法都是可以的,你甚至可以用一個滑稽表情作為常量或變量的名字。

雖然看起來可以亂取名字,但實際上還是有限制的,比如你不能使用數(shù)學(xué)符號、箭頭、保留的或者非法的Unicode碼位、連線與制表符等來為常量與變量命名。通俗地講就是不要出現(xiàn)數(shù)學(xué)運算符號、箭頭這種亂七八糟的東西。

也不能以數(shù)字開頭,但是可以在常量與變量名的其他地方包含數(shù)字。因為如果出現(xiàn)了以數(shù)字開頭為名的常量與變量會導(dǎo)致混亂啊,例如你定義一個常量let 2333=6666,然后用2333運算,天知道你這是表示2333還是6666。

輸出常量和變量

好了,我們終于可以向屏幕輸出點什么了,先定義一個變量:

var myAction = "_(:з」∠)_"
print(myAction)

輸出的自然是_(:з」∠)_這個表情,沒什么問題吧。print()是一個用來輸出一個或多個值到適當(dāng)輸出區(qū)的全局函數(shù)。就當(dāng)是內(nèi)置的打印機(jī)吧~

除了直接輸出整個變量還可以把變量插入到某個地方:

/* 這是一個
   多行的
   注釋。 */
var myName = "猴子"         // 定義名字為猴子
print(myName)
print("這是寫給\(myName)看的Swift入門教程。")
// 輸出"這是寫給猴子看的Swift入門教程。"

Swift用字符串插值(string interpolation)的方式把常量名或者變量名當(dāng)做占位符加入到長字符串中,Swift 會用當(dāng)前常量或變量的值替換這些占位符。將常量或變量名放入圓括號中,并在開括號前使用反斜杠將其轉(zhuǎn)義。

哦,對了,其實上面的例子中我還告訴了大家怎么注釋。

還有最后一點我們就可以結(jié)束這課了,Swift對于每句編程語言后面分號的書寫并不嚴(yán)格,就是愛寫不寫。

但是如果你在同一行寫兩句編程語句當(dāng)然要加分號了。

let cat = "??"; print(cat)

好了到此結(jié)束,下一節(jié)是基本數(shù)據(jù)類型。


練習(xí)題

1. 下面哪些不是Swift合法標(biāo)識符:

A. 2variable
B. variable2
C. _whatavariable
D. _3_

答案:A

解釋:不能是數(shù)字開頭。


2.下面哪些不是Swift關(guān)鍵字的:

A.If            B.then
C.Goto          D.while
E.Case          F.__COLUMN__
G.Where         H.Class

答案:BH

解釋:其中F是關(guān)鍵字,這種大寫加下劃線的關(guān)鍵字還有:COLUMN、FILE、FUNCTIONLINE。Class不屬于關(guān)鍵字,是因為首字母大寫了,類的關(guān)鍵字是class,首字母不大寫。


3. 下列代碼,哪行有錯誤:

let _Hello1 = "Hello"               
_Hello1 = "Hello, World"            A
print(_Hello1)                  B
var _Hello2 = "Hello"               
_Hello2 = "Hello, World"            C
print(_Hello2)                      D

答案:A

解釋:A
有編譯錯誤,_Hello1是常量,不能二次賦值。


4. 下面有關(guān)Swift注釋使用正確的是?

A.
if x > 1 {
    //注釋1
} else {
    return false //注釋2
}
B.
//let _Hello1 = "Hello"
//_Hello1 = "Hello, World"
//print(_Hello1)
C.
/*
let _Hello1 = "Hello"
_Hello1 = "Hello, World"
println(_Hello1)
*/
D.
/**
let _Hello1 = "Hello"
_Hello1 = "Hello, World"
println(_Hello1)
*/

答案:ABCD

解釋:以上都是正確的,除此之外提醒一點,Swift是可以在注釋中嵌套注釋的,類似:

/*
Xxxx
/* xxxx */
Xxxx
*/

上一篇:不一樣的開始 | 下一篇:基本數(shù)據(jù)類型


目錄

  1. 不一樣的開始
  2. 常量和變量
  3. 基本數(shù)據(jù)類型
  4. 可選型
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容