swift 學(xué)習(xí)筆記

一:數(shù)組交換其中任意兩個元素
 // 交換數(shù)組里面的兩個元素
    func swap<T>(array: inout [T], a: Int, b: Int) {
        if array.count > a && array.count > b {
            (array[a], array[b]) = (array[b], array[a])
        } else {
            print("交換的數(shù)組越界了")
        }
    }
二:除法的一個函數(shù)
func divide(dividend: Double?, by divisor: Double?) -> Double? {
        guard let dividend = dividend, let divisor = divisor, divisor != 0 else {
            return nil
        }
        return dividend / divisor
    }
三:閉包的作用域
var car = "aodi"
        let closure = { [car] in
            print("I drive \(car)")
        }
        car = "benchi"
        closure()

// [car] in 相當(dāng)于把car變量復(fù)制了一份吴超,所有輸出的是: I drive aodi , 如果把 [car] in 去掉就會輸出: I drive benchi
四:Struct和Class的區(qū)別

Struct是值類型、Class是引用類型方篮。
如果一個變量student被聲明了struct并且是let類型的签孔,那么他的屬性也不能被改變折剃,但是class 的話,可以改變屬性础淤,但是不能改變本身崭放。

五:異常處理
/// 方法一:guard
func showKitten(kitten: Kitten?) {
  guard let k = kitten else {
    print("There is no kitten")
    return
  }
  print(k)
}
// 方法二:添加throw
enum KittenError: ErrorType {
  case NoKitten
}
  
struct Kitten {
}
  
func showKitten(kitten: Kitten?) throws {
  guard let k = kitten else {
    print("There is no kitten")
    throw KittenError.NoKitten
  }
  print(k)
}
try showKitten(nil)
// 方法三:
struct Kitten {
}
  
func showKitten(kitten: Kitten?) {
  guard let k = kitten else {
    print("There is no kitten")
    fatalError()
  }
  print(k)
}
六:swift map的用法。
// 把整形的數(shù)組轉(zhuǎn)換為字符串的數(shù)組鸽凶。
let arr: [Int] = [1, 2, 2, 5]
        print(arr)
        let lastArr = arr.map {
            String($0)
        }
        print(lastArr)
七:open關(guān)鍵字和public關(guān)鍵字區(qū)別

鑒于當(dāng)前寫時候是 Swift3.x, 現(xiàn)在共有5種權(quán)限控制關(guān)鍵字,之后 Swift4 又會有變化.

open
open 修飾的 class 在 Module 內(nèi)部和外部都可以被訪問和繼承
open 修飾的 func 在 Module 內(nèi)部和外部都可以被訪問和重載(override)
Public
public 修飾的 class 在 Module 內(nèi)部可以訪問和繼承币砂,在外部只能訪問
public 修飾的 func 在 Module 內(nèi)部可以被訪問和重載(override),在外部只能訪問

八:求一個整數(shù)的平方
// Int的延展
extension Int {
  var squared: Int { return self * self}
}
5.squared // 25
5.squared.squared // 625
九:遍歷數(shù)組的所有元素
// 利用泛型
func printElementFromArray<T>(a: [T]) {
  for element in a {
     print(element)
  }
}
十:利用guard let 避免嵌套
func loginAction() {
  guard let username = username, let pwd = pwd else {return}
  print("welcome: \(username)")
}
十一:初始化兩個有關(guān)系的變量
// 無論更改radius還是diameter,另一個都會跟著變化其中newValue是系統(tǒng)的變量玻侥。
var radius: Double = 10 // 默認(rèn)半徑是10
var diameter: Double {
  get {return radius * 2}
  set {radius = newValue/2.0}
}

十二:函數(shù)式編程獲取1到10的偶數(shù)
var events = (1...10).filter {$0 % 2 == 0}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末决摧,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子凑兰,更是在濱河造成了極大的恐慌掌桩,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件姑食,死亡現(xiàn)場離奇詭異拘鞋,居然都是意外死亡,警方通過查閱死者的電腦和手機矢门,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進(jìn)店門盆色,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人祟剔,你說我怎么就攤上這事隔躲。” “怎么了物延?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵宣旱,是天一觀的道長。 經(jīng)常有香客問我叛薯,道長浑吟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任耗溜,我火速辦了婚禮组力,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘抖拴。我一直安慰自己燎字,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布阿宅。 她就那樣靜靜地躺著候衍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪洒放。 梳的紋絲不亂的頭發(fā)上蛉鹿,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機與錄音往湿,去河邊找鬼妖异。 笑死惨好,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的随闺。 我是一名探鬼主播日川,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼矩乐!你這毒婦竟也來了龄句?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤散罕,失蹤者是張志新(化名)和其女友劉穎分歇,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體欧漱,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡职抡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了误甚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缚甩。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖窑邦,靈堂內(nèi)的尸體忽然破棺而出擅威,到底是詐尸還是另有隱情,我是刑警寧澤冈钦,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布郊丛,位于F島的核電站,受9級特大地震影響瞧筛,放射性物質(zhì)發(fā)生泄漏厉熟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一较幌、第九天 我趴在偏房一處隱蔽的房頂上張望揍瑟。 院中可真熱鬧,春花似錦绅络、人聲如沸月培。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至纪蜒,卻和暖如春衷恭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背纯续。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工灭袁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人窗看。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓茸歧,卻偏偏與公主長得像,于是被迫代替她去往敵國和親显沈。 傳聞我的和親對象是個殘疾皇子软瞎,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Swift2.0 1.defer譯為延緩、推遲之意類似棧 注意作用域拉讯,其次是調(diào)用順序——即一個作用域結(jié)束(注意)涤浇,...
    zeqinjie閱讀 3,378評論 0 50
  • Swift屬性 Swift屬性將值跟特定的類,結(jié)構(gòu)體魔慷,枚舉關(guān)聯(lián)只锭。分為存儲屬性和計算屬性,通常用于特定類型的實例院尔。屬...
    小小廚師閱讀 854評論 0 0
  • 一直沒有時間好好看一下swift蜻展,最近復(fù)習(xí)了一遍語法,這里記錄swift學(xué)習(xí)過程中遇到的一些問題和要點邀摆,和Obje...
    bomo閱讀 2,351評論 0 25
  • swift中常用關(guān)鍵字 **用作聲明的關(guān)鍵字: ** class铺呵、deinit、enum隧熙、extension片挂、fu...
    花前月下閱讀 7,666評論 5 32
  • 十八年 單身 第一次 他說,想來找我贞盯,嗯 他醉了 他說:“可能是喝酒更讓我清醒音念,可能是時間讓我對你產(chǎn)生了感...
    遠(yuǎn)山在笑閱讀 427評論 0 0