Swift - 基本語(yǔ)法和數(shù)據(jù)類型

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

下一篇:“Swift變量、常量、可選項(xiàng)、字面量” http://www.itdecent.cn/p/10c48f124ecc

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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