變量和常量
常量和變量必須在使用前聲明,用 let
來聲明常量,用 var
來聲明變量。常量的值一旦設(shè)定就不能改變,而變量的值可以隨意更改。如下代碼:
var str = "Hello, playground"
let taylor = 36
你可以修改變量的值:
str = "Goodbye"
但是不可以修改常量的值,如果給常量賦值taylor = 24
則會(huì)報(bào)錯(cuò)Cannot assign to value: 'taylor' is a 'let' constant
注意:
如果你的代碼中有不需要改變的值,請(qǐng)使用let
關(guān)鍵字將它聲明為常量。只將需要改變的值聲明為變量。
類型注釋
Swift是一種類型安全的語言,這意味著每個(gè)變量都必須屬于一種特定的類型。Swift會(huì)根據(jù)創(chuàng)建時(shí)給定的值為每個(gè)變量和常量分配類型。上面代碼中的str
對(duì)應(yīng)的值是一個(gè)字符串,那么此時(shí)你就不能給str
分配整數(shù)或布爾值等。
這稱為類型推斷:Swift能夠根據(jù)創(chuàng)建方式來推斷事物的類型。
let anotherPi = 3 + 0.14159
// anotherPi 會(huì)被推測(cè)為 Double 類型
如果需要,您可以明確說明數(shù)據(jù)的類型,而不是依賴Swift的類型推斷,如下所示:
let album: String = "Reputation"
let year: Int = 1989
let height: Double = 1.78
let taylorRocks: Bool = true
如果您有大量數(shù)字,Swift可讓您使用下劃線作為這個(gè)數(shù)的千位分隔符,它們不會(huì)更改數(shù)字,但它們確實(shí)使閱讀更容易。例如:
var population = 8_000_000
注意:
一般來說你很少需要寫類型標(biāo)注。如果你在聲明常量或者變量的時(shí)候賦了一個(gè)初始值,Swift可以推斷出這個(gè)常量或者變量的類型。
多行字符串
標(biāo)準(zhǔn)Swift字符串使用雙引號(hào),但是您不能在其中包含換行符。
如果要使用多行字符串,則需要略有不同的語法:以三個(gè)雙引號(hào)開頭和結(jié)尾,如下所示:
var str1 = """
This goes
over multiple
lines
"""
Swift對(duì)于如何寫這些引號(hào)非常特別:開頭和結(jié)尾三元組必須在自己的行上,但是開頭和結(jié)尾的換行符不會(huì)包含在最終字符串中。
如果您只希望多行字符串整齊地格式化代碼,并且不希望這些換行符實(shí)際出現(xiàn)在字符串中,請(qǐng)?jiān)诿啃心┪蔡砑右粋€(gè)\
,如下所示:
var str2 = """
This goes \
over multiple \
lines
"""
Double和布爾值
每當(dāng)您創(chuàng)建帶分?jǐn)?shù)的變量時(shí),Swift都會(huì)自動(dòng)為該變量提供type Double。例如:
var pi = 3.141
雙精度數(shù)與整數(shù)不同,您不能無意間將它們混合在一起。
至于布爾值,它們要簡(jiǎn)單得多:它們只持有true或false,而Swift會(huì)自動(dòng)將boolean類型分配給任何分配了true或false作為其值的變量。
例如:
var awesome = true
字符串插值
您已經(jīng)了解了如何直接在代碼中鍵入字符串的值,但是Swift還具有一個(gè)稱為字符串插值的功能-可以在字符串中放置變量以使其更有用的功能。
您可以在字符串中放置任何類型的變量-您要做的就是寫一個(gè)反斜線\,然后在括號(hào)中加上變量名。例如:
var score = 85
var str = "Your score was \(score)"
此時(shí),將str變量設(shè)置為“您的分?jǐn)?shù)是85”。
您可以根據(jù)需要多次執(zhí)行此操作,如果需要,可以使用字符串制作字符串:
var results = "The test results are here: \(str)"
稍后您將看到,字符串插值不僅限于放置變量-您實(shí)際上可以在其中運(yùn)行代碼。
總結(jié)
- 1.您可以使用
var
和創(chuàng)建常量let
。最好盡可能多地使用常量。 - 2.字符串以雙引號(hào)(
"
)開頭和結(jié)尾,但是如果希望它們跨多行運(yùn)行,則應(yīng)使用三組雙引號(hào)("""
)。 - 3.整數(shù)保存整數(shù),雙精度數(shù)保留小數(shù),布爾值保留真(
true
)或假(false
)。 - 4.字符串插值允許您從其他變量和常量創(chuàng)建字符串,并將其值放在字符串中。
- 5.Swift使用類型推斷為每個(gè)變量或常量分配類型,但是您可以根據(jù)需要提供顯式類型。