0.Swift 基礎(chǔ)語法

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í)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,936評(píng)論 6 535
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,744評(píng)論 3 421
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,879評(píng)論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,181評(píng)論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,935評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,325評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,384評(píng)論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,534評(píng)論 0 289
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,084評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,892評(píng)論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,067評(píng)論 1 371
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,623評(píng)論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,322評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,735評(píng)論 0 27
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,990評(píng)論 1 289
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,800評(píng)論 3 395
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,084評(píng)論 2 375

推薦閱讀更多精彩內(nèi)容

  • 53.計(jì)算字符 在字符串中獲取字符值的數(shù)量, 可以使用字符串字符屬性中的計(jì)數(shù)屬性: let unusualMena...
    無灃閱讀 1,119評(píng)論 0 4
  • Swift 介紹 簡(jiǎn)介 Swift 語言由蘋果公司在 2014 年推出,用來撰寫 OS X 和 iOS 應(yīng)用程序 ...
    大L君閱讀 3,260評(píng)論 3 25
  • 作品鏈接:http://www.lxweimin.com/users/1e0f5e6f73f6/top_articl...
    打電話記錯(cuò)號(hào)碼的人閱讀 1,029評(píng)論 0 9
  • 揭開赤裸裸的情緒 一輩子不可能展現(xiàn)的態(tài)度躍然紙上 看客都散了 誰還在原地演著那場(chǎng)無人相和的戲
    蝶水月秋千閱讀 134評(píng)論 0 0
  • 在寶山很難熬,總是告訴自己周一就能看到她了。 今天一整天上班除了工作交流外沒有跟她好好說過話。 去了天臺(tái)1次,走廊...
    Ermao閱讀 214評(píng)論 5 1