2014年10月19日日曜日

Swift 学習チートシート2

Swift 学習メモ2

  • xcode6.0.1

基本知識のまとめ


1.関数
1.1.関数の中で関数を記述して呼び出す。

func returnFifteen() -> Int {
    var y = 10
    func  add() {
        y += 5
    }
    add()
    return y
}

returnFifteen()

1.2
関数を変数に格納して利用する
javaScriptでよく使うパターン

func makeIncrements() -> (Int -> Int) {
    func addOne(number: Int) -> Int {
        return 1 + number
    }
    return addOne
}

var increment = makeIncrements()
increment(1)

* Point
(Int -> Int)
上記はIntで貰った関数をIntで返すという意味。


1.3.1.2を少し複雑にした関数
テストコードも各練習しないとダメだけど、とりあえず関数まで一気につぶす。

func hasAnyMathcers(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, 14, 17, 12]
hasAnyMathcers(numbers, lessThanTen)

*list: [Int], condition: Int -> Bool
配列とIntを引数にとってboolを返す関数を引数にとる

1.4.closure
クロージャー。
柔軟だけど、あんまやりすぎると可読性が落ちるので注意。テストコード必須。

var numbers = [20, 14, 17, 12]

let mappednumbers = numbers.map({number in 3 * number})

mappednumbers

ここまでの感想。
よく出来てる言語です。objective-cは極力使わない方向でiosの開発は進めていきたいですね。
あとはscalaでのプロジェクトの経験が凄い生きてるのが驚きです。scalaは流行らないと見切りをつけたんだけど、何の知識が役に立つかわからないもんですねえ。


2.class
javaとかrubyとかscalaのいいとこ取り。

class Shape {
    var numberOfSides = 0
    func simpleDescription() -> String {
        return "A sharp with \(numberOfSides) sides."
    }
}

var shape = Shape()
shape.numberOfSides = 7
var shapeDescription = shape.simpleDescription()

さらに続く

参考サイト

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...