【Kotlin】Kotlin ~ 基本編 / スコープ関数 ~

■ はじめに

https://dk521123.hatenablog.com/entry/2018/09/13/001546
https://dk521123.hatenablog.com/entry/2020/07/07/000000

の続き。

今回は、Kotlin特有のスコープ関数について、学ぶ。

目次

【1】with関数
【2】apply関数
【3】let関数
【4】run関数
# 関数 書式 対象オブジェクトのアクセス方法 戻り値
1 with with(対象オブジェクト) { 処理 } this ラムダの戻り値
2 apply 対象オブジェクト.apply { 処理 } this 対象オブジェクト
3 let 対象オブジェクト.let { 処理 } it ラムダの戻り値
4 run 対象オブジェクト.run { 処理 } this ラムダの戻り値

【1】with関数

構文

with ([対象オブジェクト]) {
    // [処理]
}

サンプル

class Person(val name: String) {
    var age: Int = 0
    fun sayHello(): String {
        return "Hello, $name!!"
    }
}

// with なし
var mike = Person("Mike")
mike.age = 20
print(mike.age)
print(mike.sayHello())

// with あり
with (Person("Tom")) {
   age = 20
   print(age)
   println(sayHello())
}

【2】apply関数

構文

[対象オブジェクト].apply {
    // [処理]
}

【3】let関数

構文

[対象オブジェクト].let {
    // [処理]
}

【4】run関数

構文

[対象オブジェクト].run {
    // [処理]
}

関連記事

Kotlin ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2018/09/13/001546
Kotlin ~ 基本編 / 配列・コレクション ~
https://dk521123.hatenablog.com/entry/2020/07/07/000000
Kotlin ~ 基本編 / クラス ~
https://dk521123.hatenablog.com/entry/2020/07/23/000000