Hirauchiホームプロフィールプログラミング作品集お問い合わせ最終更新日:2020/02/01【Kotlin基礎】スコープ関数runの実装方法と用途を解説Kotlinプログラミングrunの実装方法が知りたい。runはどんな時に使うと便利なの?run以外のスコープ関数について知りたい。プログラミングを始めたばかりの方や、これまでJavaしか触ってこなかったにとって、「スコープ関数」という用語は初めて聞くのではないでしょうか?Kotlinには、スコープ関数というシンプルですが、覚えておくと便利な関数があります。スコープ関数にはいくつか種類があるのですが、本記事では、runというスコープ関数について解説致します。他のスコープ関数につきましても、簡単な解説と、詳細をまとめた記事へのリンクがありますので、そちらも合わせてご覧頂けたらと思います。目次1.スコープ関数runの実装方法と用途について1-1.runの基本的な使い方1-2.runの具体的な使用用途2.run以外のスコープ関数について3.まとめスコープ関数runの実装方法と用途についてrunの基本的な使い方スコープ関数runは、公式ドキュメントで以下のように定義されております。result.(指定された機能ブロックを呼び出し、その結果を返します。)」と記されています。}内の処理を実行し、最後の処理を返す」関数と解釈しております。実際の使用例で、詳しく見ていきましょう。5}println(result)さて、変数resultをprintln()すると、なんと出力されるでしょうか?正解は25です。5の結果がresultに格納されます。上記の例では、変数numberからrunが呼び出されています。このようなオブジェクトをレシーバーと呼びます。レシーバーは、runのブロック内で、thisで呼び出すことができます。thisを使った例をみていきましょう。10で20が出力されます。runの戻り値は、レシーバーの型に合わせる必要はありません。こんにちは以上がrunの基本的な使い方となります。続いて、runの具体的な使用用途について解説していきます。いいましても、「これがrunの正しい使い方!」というものではなく、あくまで僕自身が便利だと感じる使用方法についての紹介となること、あらかじめご了承ください。僕はrunをレシーバーのnullチェックに使用しております。以下の2つのサンプルコードをご覧ください。1、22つのサンプルコードの違いは、レシーバーとなっている変数strが、nullかどうかの違いです。1つ目のサンプルコードでは、1と3が出力され、2つ目のサンプルコードでは1と2が出力されております。nullチェックを行っているからです。つけた場合は、「レシーバーがnullならブロック処理を実行」となります。Javaではnullチェックはif文で行っていると思います。Javaで実装した場合と見比べると、runの便利さに気づいていただけるかもしれません。つけた場合は、nullであれば実効run以外のスコープ関数についてrun以外のスコープ関数について簡単な解説と、詳しい内容をまとめた記事へのリンクを紹介致します。letについてletは、公式ドキュメントで以下のように定義されております。5Pointブロック処理内では、レシーバーをitで参照できるブロック処理の最後の値を返す(レシーバーでなくてもよい)詳しい解説はこちらをご覧ください。本記事では、スコープ関数letについて詳しく解説しております。letはNullチェックを行う際に便利な関数でス。皆さんも、この記事を読んで、letを使いこなせるようになっていただけたらと思います。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歳です。