Swift 基礎(chǔ)語法
本文目錄
常量
- 由
let
關(guān)鍵字定義 - 只能賦值1次
- 它的值不要求在編譯時(shí)期確定,但使用之前必須賦值1次
let age1 = 10
let age2: Int
age2 = 20
func getAge() -> Int{
return 30
}
let age3 = getAge()
- 常量、變量在初始化之前,都不能使用,如下代碼都是錯(cuò)誤的
let age: Int
var height: Int
print(age) // 未進(jìn)行初始化,直接使用,在編譯期直接報(bào)錯(cuò)
print(height) // 未進(jìn)行初始化,直接使用,在編譯期直接報(bào)錯(cuò)
let age
age = 20 // 常量聲明時(shí)須直接賦值,由編譯期自動(dòng)推斷類型,或者僅設(shè)置類型,稍后使用之前賦值一次。
標(biāo)識(shí)符
- 標(biāo)識(shí)符(如常量名,變量名,函數(shù)名)幾乎可以使用任何字符串
- 標(biāo)識(shí)符不能以數(shù)字開頭,不能包含空白字符、制表符、箭頭等特殊字符
func ????(){
print(666)
}
let ?? = "ET"
var ?? = "milk"
常見的數(shù)據(jù)類型
Swift 中數(shù)據(jù)類型,主要分為兩大類。值類型(value type) 和 引用類型(reference type)
主要分類 | 類別 | 代表類型 |
---|---|---|
值類型 value type | 枚舉 enum | Optional |
值類型 value type | 結(jié)構(gòu)體 struct | Bool、Int、Float、Double、Character、 String、Array、Dictionary、Set |
引用類型 reference type | 類 class |
整數(shù)類型:Int8、Int16、Int32、Int64、UInt8、UInt16、UInt32、UInt64、
在32bit平臺(tái)上,Int 等價(jià)于 Int32,在64bit平臺(tái)上,Int 等價(jià)于 Int64
整數(shù)的最值:UInt8.max Int16.min
一般情況下使用Int即可
浮點(diǎn)類型:Float,32位環(huán)境,精度為6位;Double類型在64位環(huán)境下精度為15位
let letFloat: Float = 30.0
let letDouble = 30.0
字面量
字面量就是一些直接寫出來看到的變量或者常量,如下展示了常用的一些字面量
// 布爾
let bool = true
// 字符串
let string = "Swift"
// 字符 (可存儲(chǔ) ASCII 字符 和 Unicode 字符)。Swift 中字符類型也使用雙引號(hào)
let character: Character = "??"
// 整數(shù)
let intDecimal = 17 // 十進(jìn)制整數(shù)
let intBinary = 0b10001 // 二進(jìn)制
let intOctal = 0o21 // 八進(jìn)制
let intHeaxDecimal = 0x11 // 十六進(jìn)制
// 浮點(diǎn)數(shù)
let doubleDecimal = 125.0 // 十進(jìn)制 等價(jià)于 1.25e2, 0.125 等價(jià)于 12.5e-2
let doubleHeaxDecimal1 = 0xFp2 // 十六進(jìn)制 等價(jià)于 15*2^2 = 60(十進(jìn)制)
let doubleHeaxDecimal2 = 0xFp-2 // 十六進(jìn)制 等價(jià)于 15*2^-2 = 3.75(十進(jìn)制)
// 數(shù)組, Swift 中數(shù)組可以存放 Any 類型數(shù)據(jù),此處僅為存放整數(shù)
let array: Array = [1,2,3,54]
// 字典, Swift 中字典可以存放 Any 類型數(shù)據(jù),此處僅為存放整數(shù)
let dictionary: Dictionary = ["name":"xiaoming","height":"1.7"]
// 十進(jìn)制數(shù)字 12.1875 的如下表示方式
// 12.1875 121.875e-1 十進(jìn)制
// 0xC.3p0 十六進(jìn)制
note
整數(shù)和浮點(diǎn)數(shù)可以添加額外的零或者添加下劃線來增強(qiáng)可讀性
如:100_000 、 1_000_000_000.000_1 、000123.456
類型轉(zhuǎn)換
Swift 中的類型都是強(qiáng)類型,不同類型不能進(jìn)行運(yùn)算,必須轉(zhuǎn)換成同樣的類型才可以運(yùn)算
- 整數(shù)轉(zhuǎn)換
let int1: Int16 = 2_000 // 2000
let int2: Int8 = 1 // 1
let int3 = int1 + Int16(int2) // 2001
let int4: Int = Int(int3) + Int(int1) // 4001
- 整數(shù)/浮點(diǎn)數(shù)轉(zhuǎn)換
let int = 3 // 3
let double = 0.14159 // 0.14159
let pi = Double(int) + double // 3.14159
let intPi = Int(pi) // 3
- 字面量之間可以直接進(jìn)行運(yùn)算,是因?yàn)閿?shù)字字面量本身沒有明確的類型
let result = 3 + 0.14159
// let result = 3 + .14159 // Swift 中不允許寫 .14159 代表小數(shù)
元組(Tuple)
元組就是一組元素,使用小括號(hào)括起來,元素之間使用逗號(hào)分隔。元素之間會(huì)形成一個(gè)整體,且一一對(duì)應(yīng).示例代碼如下
// 聲明一個(gè)元組對(duì)象,并打印其第一個(gè)元素
let Http404Error = (404,"page not found")
print("the error code is \(Http404Error.0)")
// 聲明一個(gè)元組等價(jià)于元組 Http404Error 這樣會(huì)給聲明的元組內(nèi)部元素自動(dòng)賦值
let (statusCode , errorMsg) = Http404Error
print("the error code is \(statusCode)")
// 聲明一個(gè)僅需要一個(gè)值的元組等價(jià)于 Http404Error,對(duì)內(nèi)部元素自動(dòng)對(duì)應(yīng) Http404Error 元素
let (theStatusCode , _) = Http404Error
// 聲明一個(gè)帶參數(shù)的元組。
let http200Status = (statusCode: 200,description: "OK")
print("the status code is \(http200Status.statusCode)")
小結(jié)
本文講述了 Swift 語言中基礎(chǔ)的一些語法,作為后續(xù)學(xué)習(xí)的基礎(chǔ),后面會(huì)循序漸進(jìn)學(xué)習(xí)并總結(jié) Swift 中更深層次的知識(shí)。