變量和常量
常量和變量必須在使用前聲明,用 let
來聲明常量拦英,用 var
來聲明變量蜒什。常量的值一旦設定就不能改變,而變量的值可以隨意更改疤估。如下代碼:
var str = "Hello, playground"
let taylor = 36
你可以修改變量的值:
str = "Goodbye"
但是不可以修改常量的值灾常,如果給常量賦值taylor = 24
則會報錯Cannot assign to value: 'taylor' is a 'let' constant
注意:
如果你的代碼中有不需要改變的值,請使用let
關(guān)鍵字將它聲明為常量铃拇。只將需要改變的值聲明為變量钞瀑。
類型注釋
Swift是一種類型安全的語言,這意味著每個變量都必須屬于一種特定的類型慷荔。Swift會根據(jù)創(chuàng)建時給定的值為每個變量和常量分配類型雕什。上面代碼中的str
對應的值是一個字符串,那么此時你就不能給str
分配整數(shù)或布爾值等。
這稱為類型推斷:Swift能夠根據(jù)創(chuàng)建方式來推斷事物的類型监徘。
let anotherPi = 3 + 0.14159
// anotherPi 會被推測為 Double 類型
如果需要晋修,您可以明確說明數(shù)據(jù)的類型,而不是依賴Swift的類型推斷凰盔,如下所示:
let album: String = "Reputation"
let year: Int = 1989
let height: Double = 1.78
let taylorRocks: Bool = true
如果您有大量數(shù)字墓卦,Swift可讓您使用下劃線作為這個數(shù)的千位分隔符,它們不會更改數(shù)字户敬,但它們確實使閱讀更容易落剪。例如:
var population = 8_000_000
注意:
一般來說你很少需要寫類型標注。如果你在聲明常量或者變量的時候賦了一個初始值尿庐,Swift可以推斷出這個常量或者變量的類型忠怖。
多行字符串
標準Swift字符串使用雙引號,但是您不能在其中包含換行符抄瑟。
如果要使用多行字符串凡泣,則需要略有不同的語法:以三個雙引號開頭和結(jié)尾,如下所示:
var str1 = """
This goes
over multiple
lines
"""
Swift對于如何寫這些引號非常特別:開頭和結(jié)尾三元組必須在自己的行上皮假,但是開頭和結(jié)尾的換行符不會包含在最終字符串中鞋拟。
如果您只希望多行字符串整齊地格式化代碼,并且不希望這些換行符實際出現(xiàn)在字符串中惹资,請在每行末尾添加一個\
贺纲,如下所示:
var str2 = """
This goes \
over multiple \
lines
"""
Double和布爾值
每當您創(chuàng)建帶分數(shù)的變量時,Swift都會自動為該變量提供type Double褪测。例如:
var pi = 3.141
雙精度數(shù)與整數(shù)不同猴誊,您不能無意間將它們混合在一起。
至于布爾值侮措,它們要簡單得多:它們只持有true或false懈叹,而Swift會自動將boolean類型分配給任何分配了true或false作為其值的變量。
例如:
var awesome = true
字符串插值
您已經(jīng)了解了如何直接在代碼中鍵入字符串的值萝毛,但是Swift還具有一個稱為字符串插值的功能-可以在字符串中放置變量以使其更有用的功能项阴。
您可以在字符串中放置任何類型的變量-您要做的就是寫一個反斜線\,然后在括號中加上變量名笆包。例如:
var score = 85
var str = "Your score was \(score)"
此時环揽,將str變量設置為“您的分數(shù)是85”。
您可以根據(jù)需要多次執(zhí)行此操作庵佣,如果需要歉胶,可以使用字符串制作字符串:
var results = "The test results are here: \(str)"
稍后您將看到,字符串插值不僅限于放置變量-您實際上可以在其中運行代碼巴粪。
總結(jié)
- 1.您可以使用
var
和創(chuàng)建常量let
通今。最好盡可能多地使用常量粥谬。 - 2.字符串以雙引號(
"
)開頭和結(jié)尾,但是如果希望它們跨多行運行辫塌,則應使用三組雙引號("""
)漏策。 - 3.整數(shù)保存整數(shù),雙精度數(shù)保留小數(shù)臼氨,布爾值保留真(
true
)或假(false
)掺喻。 - 4.字符串插值允許您從其他變量和常量創(chuàng)建字符串,并將其值放在字符串中储矩。
- 5.Swift使用類型推斷為每個變量或常量分配類型感耙,但是您可以根據(jù)需要提供顯式類型。