? ? ? 早就聽聞Swift的簡潔的大名踪央,無奈時間有限一直沒能好好學(xué)習(xí)一下,最近正好時間多到爆瓢阴,準(zhǔn)備系統(tǒng)的學(xué)習(xí)一下畅蹂。記下這份筆記,一來監(jiān)督自己要持之以恒荣恐,二來方便哪天腦抽不記得了液斜,也好回來翻翻找找。
一叠穆、Swift 介紹
簡介
1. Swift 語言由蘋果公司在 2014 年推出少漆,用來撰寫 OS X 和 iOS 應(yīng)用程序
2. 2014 年,在 Apple WWDC 發(fā)布
歷史
1. 2010 年 7 月硼被,蘋果開發(fā)者工具部門總監(jiān)Chris Lattner開始著手 Swift 編程語言的設(shè)計(jì)工作
2. 用一年時間示损,完成基本架構(gòu)
3. Swift 大約歷經(jīng) 4 年的開發(fā)期,2014 年 6 月發(fā)表
4. 克里斯·拉特納何許人?
LLVM 項(xiàng)目的主要發(fā)起人與作者之一
Clang 編譯器的作者
蘋果公司『開發(fā)者工具』部門的主管
領(lǐng)導(dǎo)Xcode嚷硫、Instruments等編譯器團(tuán)隊(duì)
Swift的大部分基礎(chǔ)架構(gòu)均由他1人完成
特點(diǎn)
從它的語法中能看到Objective-C检访、JavaScript、C#仔掸、Python等語言的影子
語法簡單脆贵、代碼簡潔、使用方便
可與Objective-C混合使用(相互調(diào)用)
提供了類似 Java 的名字空間(namespace)起暮、泛型(generic)卖氨、運(yùn)算對象重載(operator overloading)
為什么設(shè)計(jì)Swift語言
讓應(yīng)用開發(fā)更簡單、更快鞋怀、更穩(wěn)定
確保最終應(yīng)用有著更好的質(zhì)量
資源網(wǎng)站
《The Swift Programming Language》中文版http://numbbbbb.gitbooks.io/-the-swift-programming-language-/
二双泪、Swift初體驗(yàn)
Playground是什么?
從Xcode6開始出現(xiàn)(Swift開始出現(xiàn)),對于學(xué)習(xí)Swift基本語法非常方便
所見即所得(快速查看結(jié)果)密似,語法特性發(fā)生改變時,可以快速查看.
Swift最基本的語法變化
1. ?導(dǎo)入框架 ?import UIKit
2. ?定義標(biāo)識符時焙矛,必須聲明該標(biāo)識符是變量(var修飾)還是常量(let修飾)
聲明標(biāo)識符的格式:變量/常量關(guān)鍵字 ?名稱 : 數(shù)據(jù)類型 = 值
3. 語句結(jié)束時不需要加;
如果同一行有多個語句残腌,則依然需要加村斟,但是不建議一行多條語句
4. 打印語句 print(打印的內(nèi)容)
二贫导、常量&變量
什么是常量和變量
1.在Swift中規(guī)定:在定義一個標(biāo)識符時必須明確說明該標(biāo)識符是一個常量還是變量
2.使用let來定義常量,定義之后不可以修改
3.使用var來定義變量蟆盹,定義之后可以修改
常量和變量的基本使用
import UIKit
let a : Int = 20
var b : Double = 1.44
b = 2.44
常量和變量的使用注意
1.在使用過程中孩灯,建議先定義常量,如果需要修改再修改為變量(更加安全)
2.是指向的對象不可以再進(jìn)行修改逾滥,但是可以通過指針獲得對象后峰档,修改對象內(nèi)部的屬性
let view = UIView()
view.backgroundColor = UIColor.redColor()
view.frame = CGRectMake(0,0,100,100)
view.hidden = true
三、Swift中的數(shù)據(jù)類型
Swift中的數(shù)據(jù)類型也有:整型寨昙、浮點(diǎn)型讥巡、對象類型、結(jié)構(gòu)體類型舔哪、枚舉類型等等
有符號整型:Int ? ?無符號整型:UInt ? 32位浮點(diǎn)型:Float ? 64位浮點(diǎn)型:Double
Swift中的類型推導(dǎo)
1.Swift是強(qiáng)類型的語言
2.Swift中任何一個標(biāo)識符都有明確的類型
3.如果定義一個標(biāo)識符時有直接進(jìn)行賦值欢顷,標(biāo)識符后面的類型可以省略,因?yàn)镾wift有類型推導(dǎo)捉蚤,會自動根據(jù)后面的賦值來決定前面的標(biāo)識符的數(shù)據(jù)類型
4.可以通過option+鼠標(biāo)左鍵來查看變量的數(shù)據(jù)類型
Swift中基本運(yùn)算
1. Swift中在進(jìn)行基本運(yùn)算時必須保證類型一致抬驴,否則會出錯,因?yàn)镾wift中沒有隱式轉(zhuǎn)換
2. 數(shù)據(jù)類型的轉(zhuǎn)化
Int類型轉(zhuǎn)成Double類型:Double(標(biāo)識符)
Double類型轉(zhuǎn)成Int類型:Int(標(biāo)識符)
let a = 10
let b = 3.14
let c = Double(a) + b
let d = a + Int(b)
四缆巧、邏輯分支
(一)if分支語句
1. 判斷句可以不加()
2. 在Swift的判斷句中必須有明確的真假布持,不再有非0即真的概念。判斷句必須有明確的Bool值陕悬,Bool有兩個取值:false/true
let score = 87
if score < 0 || score > 100 {
? ? print("分?jǐn)?shù)不合理")
} else if score < 60 {
? ? print("不及格")
} else {
? ? print("及格成績")
}
(二)三目運(yùn)算符
Swift中的三目運(yùn)算保持了和OC一致的風(fēng)格
let a = 20
let b = 30
let result = a > b ? a : b
(三)guard的使用
1. guard是Swift2.0新增的語法
2. 它與if語句非常類似鳖链,它設(shè)計(jì)的目的是提高程序的可讀性
3. guard語句必須帶有else語句,它的語法如下:
當(dāng)條件表達(dá)式為true時候跳過else語句中的內(nèi)容墩莫,執(zhí)行語句組內(nèi)容
條件表達(dá)式為false時候執(zhí)行else語句中的內(nèi)容芙委,跳轉(zhuǎn)語句一般是return、break狂秦、continue或者throw
guard 條件表達(dá)式 else {
? ? // 條換語句
? ? break
}
語句組
4. 舉例
let age = 20
func online(age : Int) {
? ? guard age >= 18 else{
? ? ? ? print("回去找媽媽")
? ? ? ? return
? ? }
? ? guard 帶了身份證 else{
? ? ? ? print("回家拿身份證")
? ? ? ? return
? ? }
? ? guard 帶了錢 else{
? ? ? ? print("回家拿錢")
? ? ? ? return
? ? }
? ? print("開機(jī)上網(wǎng)")
}
online(age)
(四)switch分支
1. ?switch后可以不跟() 灌侣,?case后可以不跟break(默認(rèn)會有break)
2. 一個case判斷中,可以判斷多個值裂问,多個值以,隔開
3. 如果希望出現(xiàn)之前的case穿透,則可以使用關(guān)鍵字fallthrough
4. switch支持多種數(shù)據(jù)類型的判斷侧啼,例如浮點(diǎn)型、字符串
5.switch支持區(qū)間判斷
開區(qū)間:0..<10 表示:0~9,不包括10 ? ??閉區(qū)間:0...10 表示:0~10
五堪簿、循環(huán)
for循環(huán)的寫法
1. 最常規(guī)寫法
for var i = 0; i < 10; i++ {
? ? print(i)
}
2. 區(qū)間for循環(huán)
for i in 0..<10 {
? ? print(i)
}
3. 如果在for循環(huán)中不需要用到下標(biāo)i痊乾,可以用_代替
for _ in 0...10 {
? ? print("hello")
}
while和do while循環(huán)
1. while循環(huán)
while的判斷句必須有正確的真假,沒有非0即真
while后面的()可以省略
2. do while循環(huán)
使用repeat關(guān)鍵字來代替了do