1. 程式人生 > >Swift學習總結

Swift學習總結

Swift學習

##1、常量、變數
var / let
####注意一:
在開發中優先使用常量let,只有發現需要修改的情況,才使用變數。
目的:
防止不小心修改的值情況。

####注意二:
常量的本質:
指向記憶體地址,不可修改,但是可以通過記憶體地址,找到相應的物件,之後修改物件內部的屬性。

##2、Swift型別推導
###2.1 Swift是強型別語言
強型別:強制定義型別的語言。 let/var
弱型別:非強制定義型別的語言。
靜態型別語言:編譯器無法檢測型別。
動態型別語言:編譯器可以自動檢測型別的語言。

###2.2 Swift的任何一個識別符號都有明確的型別
我們定義一個識別符號時,可以直接給識別符號賦值,編譯器會根據賦值的型別從而推匯出前面識別符號的型別,這個過程就叫做型別推導。

##3、Swift基本運算
###3.1 swift在計算執行時必須保證型別一致,否則會出錯。
相同型別才可以進行運算。Double()
swift沒有隱式轉換。

##4、Swift和OC的邏輯判斷區別
###4.1 if的邏輯區別
1> if後面的()可以省略。
2> 沒有非0(nil)即真。
結論:基本上沒有什麼區別。
###4.2 guard的使用
1>swift 2.0新增語法,和if非常相似,目的是提高程式的可讀性。
2>guard語句必須帶有else,當判斷為true的時候執行guard語句後的方法,當為false時,執行else內部的語句,一般返回return、break、continue和throw。
###4.3 switch的使用
1>用法和OC一致
2>case後可以不寫( ),可以不跟break,預設有break。
3>基本用法補充
a、switch後面的case可以判斷多個條件。
b、如果希望case結束時,產生case穿透,case結束時新增fallthrough。否則預設的break會終止。

##5、列舉型別
###5.1 建立列舉具體的值
###5.2 給列舉型別繫結值
###5.3 列舉型別的另外一種定義方式
enum Type : Int{case get = 0 , post = 1} 只有int型別的可以這麼賦值,其餘的型別不可以。

##6、結構體
###6.1 struct是由一系列相同型別或者不同型別的資料構成的資料集合。
###6.2 struct指的是一種資料結構。
###6.3 struct是值型別,在方法中傳遞是值傳遞。

swift的結構體是可以擁有自己的屬性和方法的,但是OC的結構體只能擁有自己的屬性。
###6.4 如果在結構體內的方法中修改結構體中的屬性,需要在結構體的方法中新增mutating(變化)
###6.5 預設情況下,系統會為結構體提供一個預設的建構函式,並且該建構函式給每個屬性成員進行復制。
1>該建構函式是以init開頭,並且建構函式不需要返回值。
2>建構函式結束後必須保證所有的屬性被初始化。