iOS開発者のKotlin入門その2(条件式とか)

botman3 Android

はじめに

その1の続きです。条件式とスコープ関数について書きます。

条件式

if

if は式らしいので値を返します。

when

when も式らしいので値を返します。switch 近いかも?

for

for は式ではなく文なので swift と同じと考えてよさそう。

while

while も式ではなく文なので swift と同じと考えてよさそう。

処理抜け

スコープ関数

Kotlin にはスコープ関数(scope functions)という便利な関数があるらしい。
let, apply, run, with, also の5つがある。
どういうときにどの関数を使うかは下記記事にわかりやすくまとめられていました。
Kotlin スコープ関数 用途まとめ

let関数

定義

使用例

Swift の flatMap のようなもの?

with関数

定義

使用例

VBA の With ステートメントみたいなもんかと思ったけど任意の値を返せるので違うかも?

run関数

定義

使用例

let と with の合体版?

apply関数

定義

使用例

インスタンスとかのプロパティの初期設定をまとめてやりたいときとかに使う?
Swift でいう Initialization Closure みたいなもんかと思った。

also関数

定義

使用例

apply と同じ感じがするが色々利点があるらしい。

引数の関数をラムダ式として記述した場合、元のレシーバを it として参照できますが、何か意味のある名前を付けてやれば(例えばnameとかlabelとか)、コードの可読性が上がるでしょう。
そしてもう一つの利点は、ラムダ式の内と外でthisの意味が変わらないということです。

さいごに

参考記事でも with はほぼ使われてなさそう。apply はたまに使ってたけど also の方が良さそうな気がする。
let, run, also は使い所がありそうな予感。

参考

コメント

  1. […] その2の続きです。関数について書きます。 […]

タイトルとURLをコピーしました