Hirauchiホームプロフィールプログラミング作品集お問い合わせ最終更新日:2020/02/01【Kotlin基礎】スコープ関数letの実装方法と用途を解説Kotlinプログラミングletの実装方法が知りたい。letはどんな時に使うと便利なの?let以外のスコープ関数について知りたい。このような悩みを抱えている方、多いと思います。僕自身、Kotlinを学び始めた頃、「スコープ関数」に初めて出会ったとき、理解するのに苦労したことを覚えております。そこで、本記事では、スコープ関数letについて詳しく解説しております。スコープ関数にはいくつか種類があるのですが、あえてletにのみ焦点を当てる事に致しました。他のスコープ関数につきましては、簡単な解説と、詳細をまとめた記事へのリンクがありますので、そちらをご覧頂けたらと思います。目次1.スコープ関数letの実装方法と用途について1-1.letの基本的な使い方1-2.letの具体的な使用用途2.let以外のスコープ関数について3.まとめスコープ関数letの実装方法と用途についてletの基本的な使い方スコープ関数letは、公式ドキュメントで以下のように定義されております。Languageもう少しイメージしやすい形にすると、以下のようになります。result.(この値を引数として指定された関数ブロックを呼び出し、結果を返します。)」と記されています。「この値」は変数のことを指しております。このようにletを呼び出している変数のことをレシーバーと呼びます。}内では、レシーバーをitで呼び出すことができます。「結果を返します」とあるように、処理の結果を返すことができます。実装例で詳しく見ていきましょう。5変数strをレシーバーとし、letの処理が行われております。}内では、it.lengthという処理が行われておりますね。このitはレシーバーであるstrにあたりますので、it.lengthは”hello”の長さで5となります。letの処理は結果を返すので、変数resultに5が格納されます。以上がサンプルコードの処理の流れです。続いて、letの具体的な使用用途について解説していきます。letは、レシーバーのnullチェックで力を発揮します。Nullable(nullの可能性がある)な変数Aがあったとしましょう。この変数Aに対し、何かしらの処理がしたい場合、Javaではif文によるnullチェックを行います。A.処理}これをKotlinでは、letを使用することで以下のように実装することができます。it.処理}レシーバーAに対し、「?.」というものが付いています。これはセーフコール演算子と呼ばれるもので、変数がnullでなければ変数にアクセスするという役割を持っています。このセーフコール演算子とletを組み合わせることで、Nullableな変数に対して、安全にアクセスすることができます。}で、nullでないことを確認し、安全に処理を行うことができるlet以外のスコープ関数についてlet以外のスコープ関数について簡単な解説と、詳しい内容をまとめた記事へのリンクを紹介致します。runについてrunは、公式ドキュメントで以下のように定義されております。20Pointブロック処理内では、レシーバーをthisで参照できるブロック処理の最後の値を返す(レシーバーでなくてもよい)詳しい解説はこちらをご覧ください。【Kotlin基礎】スコープ関数runの実装方法と用途を解説Kotlinには、スコープ関数というシンプルですが、覚えておくと便利な関数があります。本記事では、runというスコープ関数について解説致します。applyについてapplyは、公式ドキュメントで以下のように定義されております。20}println("私の名前は${result.name}です、${result.age}才です。"私の名前は田中です、20才です。Pointブロック処理内では、レシーバーをthisで参照できるレシーバー自身を返す詳しい解説はこちらをご覧ください。【Kotlin基礎】スコープ関数applyの実装方法と用途を解説スコープ関数は、初めはなかなか理解しづらいかもしれませんが、覚えておくととても便利です。そこで本記事では、スコープ関数applyについて解説致します。applyは、個人的に最も使用頻度の高い関数です。alsoについてalsoは、公式ドキュメントで以下のように定義されております。"私は伊藤、30才です。Pointブロック処理内では、レシーバーをitで参照できるレシーバー自身を返す詳しい解説はこちらをご覧ください。【Kotlin基礎】スコープ関数alsoの実装方法と用途を解説Kotlinにはスコープ関数という覚えておくと便利な関数があります。スコープ関数にはいくつか種類があるのですが、本記事では、スコープ関数alsoについて詳しく解説致します。}で、nullでないことを確認し、安全に処理を行うことができるTweet元太こんにちは、元太と申します。フリーランスのプログラマーとして、スマホアプリの開発をしております。現在は客先へ常駐で働いており、仕事以外の時間で、個人でアプリを開発したり、ブログの執筆等を行っております。子どもいっぱいの大家族を夢見る30歳です。