ユーザ用ツール

サイト用ツール


サイドバー

kotlin:標準関数・スコープ関数

以前のリビジョンの文書です


標準関数・スコープ関数

apply

レシーバーに対して一連の関数を呼びだすことでレシーバーに対する設定ができる。

// 定義
public inline fun <T> T.apply(block: T.() -> Unit): T {
    contract {
        callsInPlace(block, InvocationKind.EXACTLY_ONCE)
    }
    block()
    return this
}
// サンプル
    val file= File("text.txt").apply {
        setReadable(true)
        setWritable(true)
        setExecutable(true)
    }

let

渡されたラムダにitで参照できるようにする。

// 定義
public inline fun <T, R> T.let(block: (T) -> R): R {
    contract {
        callsInPlace(block, InvocationKind.EXACTLY_ONCE)
    }
    return block(this)
}
// サンプル
    val value = listOf<Int>(1,2,3).shuffled().first().let { it*it }
    println(value)
 
// null合体演算子との組み合わせ
関数 渡し 返し
apply 何も渡さない レシーバー
let レシーバーをラムダに渡す ラムダの最後の行

run

with

also

takeif

takeUnless

kotlin/標準関数・スコープ関数.1576167417.txt.gz · 最終更新: 2019/12/13 01:16 by ips