原创 Swift(三):流程控制(if-else, while, for, 區間類型, switch, 標籤語句)

if-else if後面的條件可以省略小括號   if條件後面的大括號不可以省略                    if後面的條件只能是Bool類型 -----------------------------------------

原创 Swift學習(十):方法(實例方法,類型方法,mutating,@discardableResult)

方法(Method) 枚舉、結構體、類都可以定義實例方法、類型方法 實例方法(Instance Method):通過實例對象調用,相當於OC中的對象方法 類型方法(Type Method):通過類型調用,用static或者class關鍵字

原创 Swift學習(十一):下標(結構體和類作爲下標返回值的對比)

下標(subscript) 使用subscript可以給任意類型(枚舉、結構體、類)增加下標功能,有些地方也翻譯爲:下標腳本 subscript的語法類似於實例方法、計算屬性,本質就是方法(函數),(語法書寫方式[ ]) p[0] =

原创 Swift學習(十九): 可選項本質(多重可選項本質)

可選項的本質 可選項的本質是enum類型  這是底層可選項的代碼,可以看出本質是enum var age: Int? = 10 等價於以下四種: var age0: Optional<Int> = Optional<Int>.som

原创 Swift學習(十六):協議(protocol,static,class,mutating,init,init?,init!,繼承,協議組合,as?,as!,Any,AnyObject,Self)

協議(Protocol) 協議可以用來定義方法、屬性、下標的聲明,協議可以被枚舉、結構體、類遵守(多個協議之間用逗號隔開) 協議中定義方法時不能有默認參數值  默認情況下,協議中定義的內容必須全部都實現 也有辦法可以辦到只實現部分內容

原创 Swift學習(十二):繼承(內存結構,override重寫,多態,屬性觀察器,final)

繼承(Inheritance) 值類型(枚舉、結構體)不支持繼承,只有類支持繼承  沒有父類的類,稱爲:基類 Swift並沒有像OC、Java那樣的規定:任何類最終都要繼承自某個基類  子類可以重寫父類的下標、方法、屬性,重寫必須加上ov

原创 Swift學習(五): 枚舉(基本用法,關聯值,原始值,遞歸枚舉,MemoryLayout,可選項,強制解包,可選項綁定,空合併運算符??,隱式解包,多重可選項,guard)

枚舉的基本用法   等價於 =>> 使用:      --------------------------------------------------------------------------------------------

原创 Swift學習(八):閉包(閉包表達式,尾隨閉包,閉包的定義,自動閉包)

閉包表達式(Closure Expression) 可以通過func定義一個函數,也可以通過閉包表達式定義一個函數 func函數 閉包定義函數 閉包表達式調用可以直接省略參數名 閉包定義函數也可以寫爲: 閉包表達式的結構 閉包表達

原创 Swift學習(四):函數(定義,隱式返回,多返回值,參數標籤,默認參數值,可變參數,inout輸入輸出參數,函數重載,內聯函數,嵌套函數,typeslias)

函數的定義 func: 聲明這是一個函數 sum:函數名 (v1:  Int,  v2: Int): v1,v2是參數名, Int是參數類型 -> Int:返回值爲Int sum(v1:  10, v2:  20):調用函數,調用函數時有

原创 Swift學習(二):基本語法(Playground,常量,標識符,常見數據類型,類型轉換,元組)

Swift語法特性 不用編寫main函數,Swift將全局範圍內的首句可執行代碼作爲程序入口 一句代碼尾部可以省略分號(;),多句代碼寫到同一行時必須用分號(;)隔開  用var定義變量(變量可以多次賦值),let定義常量(常量不可以多次

原创 Swift學習(九):屬性(存儲屬性,計算屬性,延遲存儲屬性,屬性觀察器,inout,實例屬性,類型屬性,單例模式)

屬性分類 Swift中跟實例相關的屬性可以分爲2大類: 存儲屬性(Stored Property)  類似於成員變量這個概念  存儲在實例的內存中  結構體、類可以定義存儲屬性  枚舉不可以定義存儲屬性 計算屬性(Computed Pro

原创 Swift(學習):擴展(Extension,計算屬性,下標,方法,嵌套類型,協議,初始化,泛型)

擴展(Extension) Swift中的擴展,有點類似於OC中的分類(Category)  擴展可以爲枚舉、結構體、類、協議添加新功能 可以添加方法、計算屬性、下標、(便捷)初始化器、嵌套類型、協議等等 擴展不能辦到的事情:要注意擴展不

原创 Swift學習(七):結構體、類與枚舉的異同(初始化器,值類型,引用類型)

結構體 在 Swift 標準庫中,絕大多數的公開類型都是結構體,而枚舉和類只佔很小一部分  比如Bool、Int、Double、 String、Array、Dictionary等常見類型都是結構體   在第6行調用的,可以傳入所有成員值

原创 Swift學習(二十):高級運算符(溢出運算符,運算符重載,Equatable,Comparable,自定義運算符)

溢出運算符 Swift的算數運算符出現溢出時會拋出運行時錯誤 Swift有溢出運算符(&+、&-、&*),用來支持溢出運算 var umin = UInt8.min //0 var umax = UInt8.max //255 var

原创 Swift學習(十四):初始化(指定初始化器,便捷初始化器,初始化器的相互調用,初始化器的重寫,屬性觀察器,可失敗初始化器,反初始化器(deinit))

初始化器 類、結構體、枚舉都可以定義初始化器 類有2種初始化器:指定初始化器(designated initializer)、便捷初始化器(convenience initializer) 每個類至少有一個指定初始化器,指定初始化器是類的