swift中文文件粗略學習隨記

2021-07-10 01:12:10 字數 2066 閱讀 9076

函式

定義函式   和宣告函式不同的是  它和普通變數一樣冒號跟型別

var addmuta

:()->

int=

addp

函式作為返回型別 看到兩個箭頭差點懵逼 總結為 以第乙個箭頭為開始

閉包看到定義瞬間懵逼 捕獲值 這個用詞也是醉的不行

閉包表示式的標準格式如下  引數寫在大括號內 閉包的函式體由in引入  in 表示 引數和返回值已經完成 閉包函式體即將開始  

根據上下文推斷型別 意思是:可以根據呼叫函式的引數和返回值 來推斷閉包函式的引數和返回值 那麼這時候的閉包函式的引數和返回值就可以省略   事實上當閉包作為引數傳遞給函式時,都可以推斷出閉包的引數和返回值型別

單表示式閉包隱式返回

引數名稱縮寫

運算子函式

函式尾隨

let strings = numbers.map 

return output

}// strings 常量被推斷為字串型別陣列,即 [string]

// 其值為 ["onesix", "fiveeight", "fiveonezero"]

map後面不需要有括號 因為只有乙個引數

map會迴圈numbers陣列中的數 呼叫 閉包

新增了!嘆號 因為字典下標返回乙個可選值 表明即使key不存在也不會查詢失敗 

捕獲值  

閉包可以在其定義的上下文中捕獲常量或變數。即使定義這些常量和變數的原域已經不存在,閉包仍然可以在閉包函式體內應用和修改這些值

swift最簡單的閉包形式就是巢狀函式,也就是定義在其他函式體內的函式。巢狀函式可以捕獲其外部函式所有的引數已經定義的常量和變數。

列舉

enum

compasspoint

注意: 和c和oc 不同,swift的列舉成員在被建立時不會被賦予乙個預設的整形值。在上面的例子中,north ... 不會隱式地賦值為0  相反的 這些不同的列舉成員在compasspoint 的一種相思定義中擁有各自不同的值

多個成員值可以出現在同一行上,用逗號隔開

enum

planet

switch 和 列舉經常搭配使用  需要注意的是 你必須列出所有的列舉成員 否則無法通過編譯 當然了 你可以使用default來涵蓋所有未明確被提出的列舉成員

可以把列舉成員賦值給乙個變數 還可以把另乙個成員再賦值給這個變數 不過這個變數只能存在該列舉的乙個成員

原始值  rawvalue  可以用這個關鍵字來訪問列舉成員的原始值

原始值的隱式賦值

你為乙個列舉成員賦值為1 之後的成員都被隱式賦值

注意: 原始值構造器是乙個可失敗構造器,因為並不是每乙個原始值都有與之對應的列舉成員。這裡出現可選值

遞迴列舉

你可以在列舉成員前加上乙個indirect來標識這成員可遞迴。

結構體類與結構體的不同之處:

繼承允許乙個類繼承另乙個類的特徵    

型別轉換允許在執行時檢查和解釋乙個類例項的型別

結構器允許乙個類例項釋放任何其所被分配的資源

引用計數允許對乙個類的多次引用

結構體和列舉是值型別

值型別被賦予給乙個變數、常量或者本身被傳遞給乙個函式的時候,實際上操作的是其的拷貝copy 占用不同的記憶體空間 拷貝後 在後台 是兩個完全不同的例項

與值型別不同,引用型別在被賦予到乙個變數、常量或者被傳遞到乙個函式時,操作的是引用,其並不是拷貝。因此,引用的是已存在的例項而不是其拷貝 相當於淺拷貝

恒等運算子

等價於 === 

不等價於 !==

這兩個運算子檢測兩個常量或者變數是否應用同乙個例項

請注意「等價於」(用三個等號表示,===)與「等於」(用兩個等號表示,==)的不同

「等價於」表示兩個類型別 的常量或者變數引用乙個類例項

「等價」表示兩個例項的值「相等」或「相同」,判定時要遵照類設計者定義的評判標準,因此相比於「相等」,這是一種更加合適的叫法

Pentaho bi 中文文件

目錄 building and debugging pentaho with eclipse zh cn 1.5.4 getting started with the bi platform zh cn 1.5.4 pentaho building components 1.5.4 pentaho ...

vim 中文文件

安裝中文幫助文件之前首先執行下列操作 在home目錄下列新建資料夾 vim vim是乙個隱藏檔案,不要漏了 vim plugin vim目錄下的plugin資料夾 vim doc vim目錄下的doc資料夾 vim syntax vim目錄下的syntax資料夾 在home目錄下新建隱藏檔案 vim...

sklearn中文文件

apachecn cwiki 位址為 scikit learn 0.18 中文文件 sklearn 基於 python 語言的,簡單高效的資料探勘和資料分析工具,建立在 numpy,scipy 和 matplotlib 上。以下是 sklearn 官方文件中文版,如果你也有興趣,歡迎來一起來維護迭代...