Swift基礎學習筆記

語法糖

  • let聲明的是常量不可以改,var聲明的是變量
  • 值永遠不會被隱式轉換為其他類型。如果你需要把一個值轉換成其他類型,請顯式轉換。如:
let label = "The width is"
let width = 94
let widthLabel = label + String(width)
  • 使用[]來創(chuàng)建數(shù)組和字典,可以用[]和[:]來創(chuàng)建空數(shù)組和空字典
shoppingList = []
occupations = [:]
  • 在類型后面加一個?來標記這個變量的值是可選的,使用!來表示一個是肯定有的。
let possibleString: String? = "An optional string."
let forcedString: String = possibleString! // 需要驚嘆號來獲取值
let assumedString: String! = "An implicitly unwrapped optional string."
let implicitString: String = assumedString  // 不需要感嘆號
  • ?? 操作符可以對比選擇一個不為空的值。(var a = ( b ?? c))
  • 使用..< 創(chuàng)建的范圍不包含上界,如果想包含的話需要使用...
  • lazy 作為屬性修飾符時,只能聲明屬性是變量。另外我們需要顯式地指定屬性類型,并使用一個可以對這個屬性進行賦值的語句來在首次訪問屬性時運行。如果我們多次訪問這個實例的str
    屬性的話,可以看到只有一次輸出。
lazy var str: String = { let str = "Hello" print("只在首次訪問輸出") return str }()
  • 使用func來聲明一個函數(shù),使用名字和參數(shù)來調(diào)用函數(shù)。使用->來指定函數(shù)返回值的類型。
  • 函數(shù)可以嵌套。被嵌套的函數(shù)可以訪問外側函數(shù)的變量.
  • 函數(shù)是第一等類型,這意味著函數(shù)可以作為另一個函數(shù)的返回值。
func makeIncrementer() -> (Int -> Int) {
    func addOne(number: Int) -> Int {
        return 1 + number
    }
    return addOne
}
var increment = makeIncrementer()
increment(7)
  • 函數(shù)也可以當做參數(shù)傳入另一個函數(shù)。
func hasAnyMatches(list: [Int], condition: Int -> Bool) -> Bool {
    for item in list {
        if condition(item) {
            return true
        }
    }
    return false
}
func lessThanTen(number: Int) -> Bool {
    return number < 10
}
var numbers = [20, 19, 7, 12]
hasAnyMatches(numbers, condition: lessThanTen)
  • 你可以使用{}來創(chuàng)建一個匿名閉包。使用in將參數(shù)和返回值類型聲明與閉包函數(shù)體進行分離。
numbers.map({
    (number: Int) -> Int in
    let result = 3 * number
    return result
})
  • 要創(chuàng)建一個類的實例,在類名后面加上括號。使用點語法來訪問實例的屬性和方法。使用init來創(chuàng)建一個構造器。使用deinit創(chuàng)建一個析構函數(shù)。
class classname{
  init(){}
  deinit(){}
}
  • 子類的定義方法是在它們的類名后面加上父類的名字,用冒號分割。
class classname:parentname{
}
  • 子類如果要重寫父類的方法的話,需要用override標記——如果沒有添加override就重寫父類方法的話編譯器會報錯。編譯器同樣會檢測override標記的方法是否確實在父類中。
  • 處理變量的可選值時,你可以在操作(比如方法、屬性和子腳本)之前加?。如果?之前的值是nil,?后面的東西都會被忽略,并且整個表達式返回nil。否則,?之后的東西都會被運行。在這兩種情況下,整個表達式的值也是一個可選值。
  • 類里的setter方法,新值默認用newValue作為變量
  • 枚舉enum里,使用rawValue屬性來訪問一個枚舉成員的原始值
  • 使用struct來創(chuàng)建一個結構體。結構體和類有很多相同的地方,比如方法和構造器。它們之間最大的一個區(qū)別就是結構體是傳值,類是傳引用。
  • 泛型,在尖括號里寫一個名字來創(chuàng)建一個泛型函數(shù)或者類型。

差不多先這些吧。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile麗語閱讀 4,118評論 0 6
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young閱讀 4,204評論 1 10
  • 1、范型范型所解決的問題 函數(shù)、方法、類型:類,結構體,枚舉,元組類型,協(xié)議參數(shù),返回值,成員函數(shù)參數(shù),成員屬性類...
    我是小胡胡123閱讀 956評論 0 1
  • Swift 介紹 簡介 Swift 語言由蘋果公司在 2014 年推出,用來撰寫 OS X 和 iOS 應用程序 ...
    大L君閱讀 3,446評論 3 25
  • 1. 完成了口語課的復述任務,到第三天,感覺嘴巴靈活了一些。 那么今天就要繼續(xù)推進口語課了。 5大課程,口語和聽力...
    齊大棗閱讀 170評論 0 1

友情鏈接更多精彩內(nèi)容