FC2ブログ
Welcome to my blog
No image

map, flatmap

iOS

久しぶりにお勉強系記事。知識としてはあるけど、どうも使う気になれないmap。swiftらしさを求めるならば使ったほうがいいんだろうなぁ。心がけよう。map配列の要素全体に何かしたいときに使うex) let arr = [1,2,3] let doubleArr = arr.map{$0 * 2} flatmapmap + 多次元配列を単次元化ex) let multiArr = [[1,2,3], [1,2]] let singleArr = multiArr.flatMap{$0 + [1]} // [1,2,3,1,1,2,1]...

No image

guard

iOS

ときどき書き方を忘れるのでメモ。 guard文は条件に合わない場合に処理を抜けるコードをシンプルにできる。 また、アンラップした変数をスコープ外で利用するのにも便利。 基本形 guard 条件式 else { return } 複数 guard 条件式, 条件式 else { return }...

No image

クロージャ

iOS

クロージャの語源は「括弧で閉じる」である。関数リテラルであるクロージャは「値」として扱われる。 基本形 {(引数:引数の型) -> (戻り値の型) in // 処理 return 戻り値 } 呼び出し // 定数の型は(Int,Int) -> Int型... // 戻り値が一つの時は戻り値の()を省略できる let addFunc: (Int,Int) -> Int = {(a:Int, b:Int) -> Int in return a + b } print(addFunc(1,2)) // 3 引数・戻り...

No image

FRPとは(メモ書き)

iOS

Reactive Programming = RPFunctional Reactive Programming = FRPFRP = ”時間とともに変化する”値を表すデータ型        = 非同期データストリームを用いるプログラミングRx  = Observables + LINQ + Schedulers      = Reactive Extensions  単一の値のストリーム = ObservableObservable = Promise++Promiseは単一の値のストリームのみを扱うつまりFRP=ストリームの連結?...

No image

defer

iOS

スコープを抜ける際に処理を実行するようにするもの。 以下に例を示す。 func deferTest() { defer { print("out of scope") } print("end of func") } // 実行結果 end of func out of scope また、複数利用する際はコード上の記述と逆順で実行される。 func multipleDefer() { defer { print("defered 1") } defer { print("defered 2") } ...