亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

the-swift-programming-language學習筆記

2019-11-14 19:53:16
字體:
來源:轉載
供稿:網友

常量和變量

常量是定義是不可以修改的,在類中定義的常量,可以在構造函數中賦值。let修飾
變量是可以修改的。var修飾
字符串中字符的遍歷
for code in string {}
for codeunit in string.unicodeScalars {}

控制語句

break 跳出循環體
continue 終止當前,進入下一個循環
label 配置break和continue使用;用label標記循環體,break label跳出標記的循環體,continue label 是進入下一個標記的循環
fallthrogh:switch語句中使用,用在case節點方法后面,作用是貫穿下一個case
switch語句中必須包含 default節點,case節點不需要使用break

范圍使用

number1&hellip;number2 == number1<=var<=number2
number1..<number2 == number1<=var<number2

元組

var tuples = (int,string,obj,…)

字典

Dictionary<KyeT,ValueT>
for (key,value) in Dictionary {}
for key in Dictionary.keys
for value in Dictionary.values
在字典復制時,取決于字典的value是值類型還是引用類型

函數

func Function(params) -> params { 方法體 }
函數的參數默認是let 常量,需要變量需要在定義參數是,定義var
參數定義時,可以賦值默認值 func Test(paramens:String = "default value") {}
可變參數 func sum(numbers:Double…) 類似傳遞一個Array<T> 的參數
參數傳遞引用 inout 關鍵字
返回多值(返回一個元組類型的值)
函數本身可以作為參數傳遞,也可以作為范圍值
參數的內部名稱和外部名稱

函數類型

嵌套函數

定義在其他函數體中的函數

閉包

類似lambdas表達式
全局函數是一個有名字,但不會捕獲任何值得閉包
嵌套函數是一個有名字并且可以捕獲其封閉函數域內值得閉包
閉包表達式是一個利用輕量級語法所寫的可以捕獲其上下文中變量或常量的沒有名字的閉包
表達式: 
{ (parameters) -> returntype in
statements
}
var numbers =[1,3,30,16,25,73,97]
func backwards(s1:String, s2:String) -> { return s1>s2 }
作為函數參數傳遞
sort(numbers,backwars)
閉包表達式傳遞
sort(numbers,{
(s1:String, s2:String) -> bool in
Return s1>s2
})
對于短的閉包可寫作一行
Sort(numbers,{(s1:String, s2:String) -> bool in return s1>s2})
閉包能自動推斷參數類型
sort(numbers,{s1, s2 in return s1>s2})
單行表達式可以省略return 關鍵字
sort(numbers,{s1,s2 in s1>s2})
參數名簡寫
sort(numbers,$0>$1)
運算符函數
sort(numbers,>)
尾隨閉包:把閉包作為最后一個參數傳遞給函數,就可以使用尾隨閉包
sort(numbers){
(s1:String, s2:String) -> bool in
Return s1>s2
})
Sort(numbers){$0>$1}

結構和類

在swift中只有類似引用類型,其他都是值類型

  • 共同:

定義屬性
定義方法
定義下標
定義構造器
擴展方法(external)
遵循協議(PRotocol)

  • 不同:

類允許繼承
類型轉換允許在運行時檢查和解釋一個類型實例的類型
析構允許一個類實例釋放任何其被分配的資源
引用計數允許對一個類的多次引用

屬性

可以通過閉包和函數來設置屬性默認值

存儲屬性

存儲在特定類或結構的實例里的一個常量(let 定義)或變量(var 定義)

常量和存儲屬性

定義一個常量的結構體屬性,該結構體的所有屬性也就變成了常量,對已引用類型的class則不一樣,把一個class的實例賦給一個常量后,仍然可以修改實例的變量屬性

延遲存儲屬性

用@lazy 來表示一個延時存儲屬性,延時存儲屬性必須用 var聲明;當屬性的值依賴在實例的構造過程前無法知道具體值的外部因素,或者當屬性的值需要復雜大量的計算是,可以只在需要的時候來計算

計算屬性

計算屬性不直接存儲值,而是提供一個getter來獲取值,一個setter來間接設置其他屬性或者變量的值。在setter中默認使用newValue表示接收的值

只讀計算屬性

就是只有getter的計算屬性

屬性監聽器

willSet 在設置新的值之前調用。默認使用newValue表示新值
didSet 在新的值被設置之后立即調用。默認使用oldValue表示舊值

全局變量和局部變量

計算屬性和屬性監聽器所屬的模式也可以用于全局變量和局部變量,全局變量是在函數、方法、閉包或任何類型之外定義的變量,局部變量是在函數、方法或閉包內部定義的變量
全局的常量或變量都是延遲計算的,跟延遲計算屬性相似,不同的地方在于,全局的變量或者常量不需要標記@lazy特性;局部范圍的常量或者變量不會延遲計算。

類型屬性

類型屬性用于定義特定類型所有實例共享的數據
對于值型類(枚舉和結構)可以定義存儲和計算型類型屬性,對于class則只能定義計算型類型屬性
在枚舉和機構中用static 聲明一個類型屬性
在class中用class聲明一個類型屬性

方法

值類型的屬性不能在他的實力方法中被修改,如果確定需要修改某個具體值類型的屬性,可以選擇變異方法(用 mutating 聲明的方法),然后方法就可以從方法內部修改它的屬性

類型方法

于類型屬性相同

附屬腳本 subscript

語法:
subscript(parameter:parametertype) -> returntype {
get{
}
set(newValue){
}
}

構造器

在類和結構中定義變量或常量屬性必須必須在構造器中賦值,或者在定義時賦值
在構造器中可以修改常量屬性

可選屬性類型

用type? 聲明,默認值是nil

自動引用計數(ARC)

Swift使用ARC來跟蹤管理應用使用的內存。大部分情況下,意味著在swift中,內存管理仍然工作,不需要自己考慮內存管理的事情,當實例不再被使用是,ARC會自動釋放類實例所占的內存
解決類實例見的強引用環
弱引用 (使用weak聲明若引用)
無主引用 (使用unowned 聲明無主引用)
無主引用以及隱式展開的可選屬性 (隱式展開的可選屬性 type!)
閉包產生的強環形引用:將一個閉包賦值給類實例的某個屬性,并且這個閉包使用了實例。這個閉包可能訪問實例的某個屬性,例如self.someProperty,或者調用某個方法,例如:self.someMethod()。
解決閉包閉包產生的強環形引用,定義占有列表(用 [unowed/weak self] 聲明)
@lazy var property : (parametertype) -> returntype = {
[unowned self] (parameter: parametertype) -> returntype in 
}
當閉包和占有的實例總是相互引用并且同時銷毀時,閉包占有定義為unowned。相反,當占有引用有時可能會說nil時,將閉包內的占有定義為weak。弱引用總是可選類型。 
兩個屬性值都是可選類型都可能是nil時,使用弱引用
兩個屬性中只有一個是可選類型,并且可能nil時,使用無主引用
兩個屬性都必須有值就使用無主引用和隱式展開可選屬性。

強制拆包

聲明可選類型的強制拆包:var s = String? var t = s!

擴展

extension SomeType = {}

協議

protocol SomeProtocol {}

突變方法

能在方法或函數內部修改實例類型的方法稱為突變方法。mutating

 

原文地址:https://developer.apple.com/library/ios/documentation/swift/conceptual/swift_programming_language/index.html

譯文地址:http://numbbbbb.gitbooks.io/-the-swift-programming-language-/content/


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品视频免费在线观看| 欧美在线视频网站| 国产亚洲精品一区二区| xxav国产精品美女主播| 日本精品性网站在线观看| 日韩av在线精品| 丝袜美腿精品国产二区| 欧美日韩国产激情| 7777精品视频| 欧美激情xxxx性bbbb| 国产精品久久综合av爱欲tv| 亚洲日韩欧美视频一区| 成人在线中文字幕| 国产精品久久999| 久久久国产精彩视频美女艺术照福利| 日韩亚洲欧美中文高清在线| 亚洲男人天堂2023| 精品国产欧美一区二区三区成人| 久久久久国产一区二区三区| 国产精品小说在线| 欧美性猛交xxxx黑人| 精品久久久久久国产| 久久久亚洲精品视频| 亚洲人a成www在线影院| 一区三区二区视频| 国模视频一区二区三区| 久久夜精品香蕉| 国产精品自拍网| 精品美女国产在线| 欧美日韩精品在线视频| 亚洲国产精品久久91精品| 久久99青青精品免费观看| 亚洲精品视频免费在线观看| 亚洲美腿欧美激情另类| 亚洲国产精品久久精品怡红院| 成人信息集中地欧美| 中文字幕欧美国内| 最新中文字幕亚洲| 亚洲无限乱码一二三四麻| 亚洲成人激情在线| 国产精品久久久久久久久粉嫩av| 亚洲性线免费观看视频成熟| 午夜精品久久久久久久99热浪潮| 国产精自产拍久久久久久| 日韩美女视频免费在线观看| 久久国产精品首页| 国产精品久久久久av| 日韩av在线精品| 热久久视久久精品18亚洲精品| 国产亚洲精品久久| 一区二区三区视频免费在线观看| 国产精品欧美日韩久久| 欧美做受高潮电影o| 日韩欧美一区二区三区久久| 亚洲一区二区三区毛片| 欧美午夜片在线免费观看| 欧美中文字幕在线观看| 性欧美视频videos6一9| 久久精品国产亚洲7777| 国产乱肥老妇国产一区二| 久久精品电影网| 91成人国产在线观看| 一区二区欧美亚洲| 亚洲美女av网站| 久久偷看各类女兵18女厕嘘嘘| 97超碰国产精品女人人人爽| 国产精品视频永久免费播放| 福利精品视频在线| 国产亚洲欧美日韩美女| 欧洲永久精品大片ww免费漫画| 久久91精品国产91久久久| 日韩女优人人人人射在线视频| 一个人看的www欧美| 亚洲mm色国产网站| 国产精品一区二区三区久久久| 亚洲电影免费观看| 97人人模人人爽人人喊中文字| 欧美日韩免费在线观看| 亚洲伊人久久大香线蕉av| 91高潮在线观看| 欧美激情精品久久久久久变态| 亚洲大胆人体av| 一区二区福利视频| 91国产视频在线| 亚洲japanese制服美女| 成人欧美一区二区三区在线| 精品亚洲一区二区三区在线观看| 国内精品久久影院| 久久激情视频免费观看| 日本中文字幕成人| 91精品国产99久久久久久| 国产欧美日韩丝袜精品一区| 国产成人自拍视频在线观看| 在线视频欧美日韩精品| 5252色成人免费视频| 国产欧美一区二区三区视频| 成人做爰www免费看视频网站| 日韩在线小视频| 欧美激情喷水视频| 国产精品成人aaaaa网站| 国产精品美女久久久久久免费| 国产精品盗摄久久久| 午夜免费久久久久| x99av成人免费| 国产精品99久久99久久久二8| www.精品av.com| 久久久久久成人精品| 久久视频在线免费观看| 欧美成人一区二区三区电影| 久久综合88中文色鬼| 亚洲欧美日韩天堂| 国产情人节一区| 91美女片黄在线观| 最近2019好看的中文字幕免费| 亚洲精品日韩丝袜精品| 在线视频欧美日韩| 美女性感视频久久久| 亚洲视频网站在线观看| 日韩电影在线观看永久视频免费网站| 久久久久久高潮国产精品视| 91精品视频一区| 97视频在线观看播放| 日本午夜人人精品| 97超碰蝌蚪网人人做人人爽| 在线亚洲午夜片av大片| 亚洲精品国产精品乱码不99按摩| 日韩综合视频在线观看| 91免费的视频在线播放| 欧美日韩国产一区在线| 欧美夜福利tv在线| 午夜精品一区二区三区在线视| 国产精品爽爽爽爽爽爽在线观看| 麻豆国产va免费精品高清在线| 社区色欧美激情 | www.亚洲男人天堂| 丝袜情趣国产精品| 欧美日韩亚洲天堂| 美日韩精品免费观看视频| 国产精品白嫩美女在线观看| 欧美亚洲国产精品| 欧美一级视频在线观看| 高清日韩电视剧大全免费播放在线观看| 欧美日韩另类视频| yw.139尤物在线精品视频| 日韩av综合网| 欧美大片免费观看| 欧美在线国产精品| 国产精品久久久| 亚洲系列中文字幕| 亚洲片在线观看| 亚洲第一色中文字幕| 一区二区三区回区在观看免费视频| 久久久久久久国产精品视频| 国产欧美日韩精品在线观看| 日韩欧美大尺度| 国产ts人妖一区二区三区| 欧美激情乱人伦| 国产成人拍精品视频午夜网站| 久久久久久久av| 国产视频丨精品|在线观看| 久久精品视频网站| 最近中文字幕mv在线一区二区三区四区| 国产精品视频26uuu| 一本久久综合亚洲鲁鲁|