Swift是一門開元的編程語(yǔ)言,該語(yǔ)言用于開發(fā)OS X和iOS應(yīng)用程序。

工欲善其事必先利其器,在開發(fā)之前,我們需要搭建Swift開發(fā)環(huán)境。搭建swift開發(fā)環(huán)境的前提:
1.蘋果電腦。Xcode只能運(yùn)行在OS X系統(tǒng)上。
2.電腦系統(tǒng)至少OS 10.0.3及以上。
3.需要Xcode開發(fā)工具。
Swift基本語(yǔ)法
eg:
//一個(gè)Swift程序
var myString = "Hello World!"
print(myString)
以上程序的執(zhí)行結(jié)果: “Hello World!”
與其他語(yǔ)言不同,Swift不要求在每行語(yǔ)句的結(jié)尾使用分號(hào)“;",但如果在同一行書寫多條語(yǔ)句時(shí),則必須要用分號(hào)隔開。
關(guān)鍵字
與聲明有關(guān)的關(guān)鍵字:

與語(yǔ)句有關(guān)的關(guān)鍵字:

與表達(dá)式和類型關(guān)鍵字:

特定上下文中使用的關(guān)鍵字

Swift空格
swift不像C/C++,Java語(yǔ)言等可以忽視空格,Swift對(duì)空格有一定的要求。在Swift中,運(yùn)算符不能直接跟在變量或常量的后面。
//這行代碼會(huì)報(bào)錯(cuò)
let a= 1 + 2
報(bào)錯(cuò)信息:error: prefix/postfix '=' is reserved、
等號(hào)直接跟在前面或后面這種用法是保留的。
let a = 1+ 2
錯(cuò)誤信息:error: consecutive statements on a line must be separated by ';'
swift認(rèn)為到1+這個(gè)語(yǔ)句就結(jié)束了,2是下一個(gè)語(yǔ)句。
正確的寫法:
//規(guī)范寫法
let a = 1 + 2
let b = 3+4
Swift的打印輸出
swift使用prinf函數(shù)打印輸出:
print("Hello world!")
print函數(shù)是一個(gè)全局函數(shù),完整的函數(shù)簽名是:
public func print(items: Any..., separator: String = default, terminator: String = default)
如果下讓輸出不換行,需要將最后一個(gè)參數(shù)賦值為空字符串:
for x in 0...10{
print("\(x) ", terminator: "")
}
//輸出結(jié)果為:0、1、2、3、4、5、6、7、8、9、10
Swift數(shù)據(jù)類型
在我們使用任何程序語(yǔ)言進(jìn)行編程時(shí),都需要使用各種的數(shù)據(jù)類型來存儲(chǔ)不同的信息。
變量的數(shù)據(jù)類型決定了如何將代表這些值的位存儲(chǔ)到計(jì)算機(jī)的內(nèi)存中,在聲明變量時(shí)也可以指定它的數(shù)據(jù)類型。所有變量都具有數(shù)據(jù)類型,以決定能夠存儲(chǔ)哪一種數(shù)據(jù)。
內(nèi)置數(shù)據(jù)類型
Swift提供了非常豐富的數(shù)據(jù)類型,下面列舉集中常用的數(shù)據(jù)類型:
1.Int
一般來講,我們是不需要指定證書的長(zhǎng)度。Swift提供了一個(gè)特殊的整數(shù)類型Int,長(zhǎng)度與當(dāng)前平臺(tái)的原生字長(zhǎng)相同:
在32位平臺(tái)上,Int和Int32長(zhǎng)度相同。
在64位平臺(tái)上,Int和Int64長(zhǎng)度相同。
一般來說我們使用Int就夠了,這可以提高代碼的復(fù)用性和一致性。即便是在32位的平臺(tái)上,Int可以存儲(chǔ)的整數(shù)范圍也可以達(dá)到-2,147,483,648~2,147,483,647,大多數(shù)時(shí)候這已經(jīng)足夠大了。
2.UInt
Swift也提供了一個(gè)特殊的無符號(hào)類型UInt,長(zhǎng)度與當(dāng)前平臺(tái)的原生字長(zhǎng)相同:
在32位平臺(tái)上,UInt和UInt32長(zhǎng)度相同。
在64位平臺(tái)上,UInt和UInt64長(zhǎng)度相同。
注意:盡量不要使用UInt,除非我們真的需要存儲(chǔ)一個(gè)和當(dāng)前平臺(tái)原生字長(zhǎng)相同的無符號(hào)整數(shù)。除此之外,最好使用Int,即使你要存儲(chǔ)的值已知是非負(fù)的。統(tǒng)一使用Int可以提高代碼的可復(fù)用性,避免不同類型數(shù)字之間的轉(zhuǎn)換,并且匹配數(shù)字的類型推斷。
3.浮點(diǎn)數(shù)
浮點(diǎn)數(shù)是有小數(shù)部分的數(shù)字,比如:3.1415926,0.1,-0.67等。
浮點(diǎn)類型比整數(shù)類型表示的范圍更大,可以存儲(chǔ)比Int類型更大或者更小的數(shù)字。Swift提供了兩種有符號(hào)浮點(diǎn)數(shù)類型:
Double表示64位浮點(diǎn)數(shù)。當(dāng)你需要存儲(chǔ)很大或者很高精度的浮點(diǎn)數(shù)時(shí)使用此類型。
Float表示32位浮點(diǎn)數(shù)。精度要求不高的話可以使用此類型。
注意:Double的精確度是很高的,至少有15位數(shù)字,而Float最少只有6位數(shù)字。選擇哪個(gè)類型取決于你的代碼需要處理的值的范圍。
4.布爾值
Swift有一個(gè)基本的布爾類型(Boolean)類型,叫做Bool。布爾值指邏輯上的值,因?yàn)樗麄冎荒苁钦婊蛘呒佟wift有兩個(gè)布爾常量,true和false。
5.字符串
字符串是自讀的序列集合,例如:“Hello world!”
6.字符
字符是指單個(gè)字母,例如:“C”
7.可選類型
使用可選類型(optionals)來處理值可能缺失的情況??蛇x類型表示有值或沒有值。
類型別名
類型別名使用typealias關(guān)鍵字來定義,語(yǔ)法格式如下:
typealias new = type
eg:
typealias Feet = Int
通過別名來定義變量:
typealias Feet = Int
var distance : Feet = 100
print(distance)
//輸出結(jié)果為:100
類型安全
Swift是一個(gè)類型安全的語(yǔ)言。由于swift是類型安全的,所以它會(huì)在編譯代碼時(shí)進(jìn)行類型檢查,并把不匹配的類型標(biāo)記為錯(cuò)誤。這可以讓你在開發(fā)的是或否提早發(fā)現(xiàn)錯(cuò)誤并修復(fù)錯(cuò)誤。
eg:
var varA = 42
varB = "Hello"
print(varA)
Xcode此時(shí)會(huì)報(bào)錯(cuò):
error: cannot assign value of type 'String' to type 'Int'
varA = "Hello"
意思不能將String字符串賦值給Int變量。
類型推斷
當(dāng)你要處理不同的類型的值時(shí),類型檢查可以幫你避免錯(cuò)誤。然而,這并不代表每次聲明常量和變量的時(shí)候都需要顯示指定類型。
如果你沒有顯示指定類型,swift會(huì)使用類型推斷類選擇合適的類型。
//會(huì)被推測(cè)為Int類型
let value1 = 10
//會(huì)被推測(cè)為Double類型
let value2 = 0.123456
//會(huì)被推測(cè)為Double類型
let value3 = 10 + 0.123456