Swift基礎學習筆記

語法糖

  • let聲明的是常量不可以改胜榔,var聲明的是變量
  • 值永遠不會被隱式轉換為其他類型盹舞。如果你需要把一個值轉換成其他類型漏设,請顯式轉換泌枪。如:
let label = "The width is"
let width = 94
let widthLabel = label + String(width)
  • 使用[]來創(chuàng)建數組和字典栏渺,可以用[]和[:]來創(chuàng)建空數組和空字典
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來聲明一個函數哼转,使用名字和參數來調用函數。使用->來指定函數返回值的類型槽华。
  • 函數可以嵌套壹蔓。被嵌套的函數可以訪問外側函數的變量.
  • 函數是第一等類型,這意味著函數可以作為另一個函數的返回值猫态。
func makeIncrementer() -> (Int -> Int) {
    func addOne(number: Int) -> Int {
        return 1 + number
    }
    return addOne
}
var increment = makeIncrementer()
increment(7)
  • 函數也可以當做參數傳入另一個函數佣蓉。
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將參數和返回值類型聲明與閉包函數體進行分離亲雪。
numbers.map({
    (number: Int) -> Int in
    let result = 3 * number
    return result
})
  • 要創(chuàng)建一個類的實例勇凭,在類名后面加上括號。使用點語法來訪問實例的屬性和方法匆光。使用init來創(chuàng)建一個構造器。使用deinit創(chuàng)建一個析構函數酿联。
class classname{
  init(){}
  deinit(){}
}
  • 子類的定義方法是在它們的類名后面加上父類的名字终息,用冒號分割。
class classname:parentname{
}
  • 子類如果要重寫父類的方法的話贞让,需要用override標記——如果沒有添加override就重寫父類方法的話編譯器會報錯周崭。編譯器同樣會檢測override標記的方法是否確實在父類中。
  • 處理變量的可選值時喳张,你可以在操作(比如方法续镇、屬性和子腳本)之前加?。如果?之前的值是nil销部,?后面的東西都會被忽略摸航,并且整個表達式返回nil制跟。否則,?之后的東西都會被運行酱虎。在這兩種情況下雨膨,整個表達式的值也是一個可選值。
  • 類里的setter方法读串,新值默認用newValue作為變量
  • 枚舉enum里聊记,使用rawValue屬性來訪問一個枚舉成員的原始值
  • 使用struct來創(chuàng)建一個結構體。結構體和類有很多相同的地方恢暖,比如方法和構造器排监。它們之間最大的一個區(qū)別就是結構體是傳值,類是傳引用杰捂。
  • 泛型舆床,在尖括號里寫一個名字來創(chuàng)建一個泛型函數或者類型。

差不多先這些吧琼娘。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末峭弟,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子脱拼,更是在濱河造成了極大的恐慌瞒瘸,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件熄浓,死亡現場離奇詭異情臭,居然都是意外死亡,警方通過查閱死者的電腦和手機赌蔑,發(fā)現死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門俯在,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人娃惯,你說我怎么就攤上這事跷乐。” “怎么了趾浅?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵愕提,是天一觀的道長。 經常有香客問我皿哨,道長浅侨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任证膨,我火速辦了婚禮如输,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己不见,他們只是感情好澳化,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著脖祈,像睡著了一般肆捕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上盖高,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天慎陵,我揣著相機與錄音,去河邊找鬼喻奥。 笑死席纽,一個胖子當著我的面吹牛,可吹牛的內容都是我干的撞蚕。 我是一名探鬼主播润梯,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼甥厦!你這毒婦竟也來了纺铭?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤刀疙,失蹤者是張志新(化名)和其女友劉穎舶赔,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體谦秧,經...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡竟纳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了疚鲤。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锥累。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖集歇,靈堂內的尸體忽然破棺而出桶略,到底是詐尸還是另有隱情,我是刑警寧澤诲宇,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布际歼,位于F島的核電站,受9級特大地震影響焕窝,放射性物質發(fā)生泄漏蹬挺。R本人自食惡果不足惜维贺,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一它掂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦虐秋、人聲如沸榕茧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽用押。三九已至,卻和暖如春靶剑,著一層夾襖步出監(jiān)牢的瞬間蜻拨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工桩引, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留缎讼,地道東北人。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓坑匠,卻偏偏與公主長得像血崭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子厘灼,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內容

  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile麗語閱讀 3,837評論 0 6
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young閱讀 3,814評論 1 10
  • 1夹纫、范型范型所解決的問題 函數、方法设凹、類型:類舰讹,結構體,枚舉围来,元組類型跺涤,協議參數,返回值监透,成員函數參數桶错,成員屬性類...
    我是小胡胡123閱讀 832評論 0 1
  • Swift 介紹 簡介 Swift 語言由蘋果公司在 2014 年推出,用來撰寫 OS X 和 iOS 應用程序 ...
    大L君閱讀 3,224評論 3 25
  • 1. 完成了口語課的復述任務胀蛮,到第三天院刁,感覺嘴巴靈活了一些。 那么今天就要繼續(xù)推進口語課了粪狼。 5大課程退腥,口語和聽力...
    齊大棗閱讀 147評論 0 1