Kotlinのrunの使い方!スコープ内で処理をまとめるテクニック
生徒
「Kotlinで一つの変数を使って、いろいろな処理をまとめて書きたいときってどうすればいいですか?」
先生
「そんなときに便利なのがrunというスコープ関数です。同じオブジェクトを使った処理をひとまとめにできて、コードがすっきり読みやすくなりますよ。」
生徒
「スコープ関数ってなんですか?難しそう…」
先生
「安心してください。初心者でもわかるように、runの使い方を基本から丁寧に説明していきますね!」
1. Kotlinのrunとは?
Kotlinのrunは、スコープ関数という機能の一つで、変数やオブジェクトの中で複数の処理をまとめて実行できる便利なツールです。
「スコープ関数」とは、特定の変数やオブジェクトを対象にして、その中で一連の処理を簡潔にまとめられる関数です。Kotlinでは、このような関数を使うことで、コードの見通しが良くなり、冗長な記述を避けることができます。
runは、特に「同じオブジェクトに対して連続して処理を行いたい」ときに有効です。例えば、オブジェクトの状態を変更するだけでなく、その結果をすぐに利用したい場合に使います。
実際に使うときのイメージとしては、「ひとつの箱(オブジェクト)の中に複数のアイテム(処理)を入れていく」ような感覚です。すべての処理が一箇所にまとまるので、後で読み返すときにも理解しやすく、保守性の高いコードになります。
例えば、文字列の操作や数値計算など、同じデータに対して複数の処理を順番に行う場合に非常に便利です。
2. runの基本的な使い方
それでは、runの基本的な使い方を見ていきましょう。runは、Kotlinの標準ライブラリにある関数の1つで、特にオブジェクトに対して処理を行いたい時に便利です。以下のように使います。
fun main() {
val result = "こんにちは".run {
println(this) // "this"は文字列そのもの
this.length // このブロック内の戻り値は文字列の長さ
}
println("文字数: $result") // "文字数: 5" と表示される
}
このコードでは、文字列「こんにちは」に対してrunを使っています。runは、指定したオブジェクト(この場合は「こんにちは」という文字列)に対して処理を行い、そのブロック内で計算した結果を返す関数です。
thisはブロック内で使える特別なキーワードで、ここでは「自分自身(この場合、文字列「こんにちは」)」を指します。this.lengthでは、文字列の長さを取得しています。
runの結果として、文字列の長さ(この場合は5)が返され、それがresultに代入されます。最後に、resultの値を表示して、「文字数: 5」と出力されます。
このように、runを使うことで、コードの可読性が向上し、オブジェクトの処理を簡潔に記述できるようになります。特に、複数の処理を行いたい場合や、結果を即座に利用したい場合に便利です。
3. runを使うと何が便利なの?
runを使うメリットは、処理をグループ化できる点です。
例えば、次のようなコードがあるとします。
val text = "Kotlin"
val upper = text.toUpperCase()
val length = text.length
val message = "文字数は $length"
これをrunを使ってひとつにまとめると、以下のように書けます。
val message = "Kotlin".run {
val upper = this.uppercase()
val length = this.length
"文字数は $length"
}
このように、一つの文字列に対する処理をrunの中にまとめて書けるので、読みやすく整理されたコードになります。
4. runの戻り値を活用しよう
runは、ブロックの最後の値を「戻り値」として返します。
たとえば、次のように計算処理にも使えます。
val result = run {
val a = 10
val b = 20
a + b
}
println(result)
この例では、a + bの結果(30)がrunから返され、resultに入ります。
わざわざ変数を定義する必要がなく、必要な処理だけをrunの中に書いて済ませられるのが便利なポイントです。
5. runとapplyとの違いは?
runとapplyは似ていますが、目的が少し違います。
applyは「オブジェクトの設定・初期化」に使うrunは「処理をまとめて、最後に値を返したいとき」に使う
初心者のうちは、applyは「準備」、runは「実行」と覚えると良いでしょう。
6. nullを扱うときにも使えるrun
Kotlinでは、null(ぬる)=「値が存在しないかもしれない」ものに対して安全に処理をする方法があります。
例えば、以下のような書き方ができます。
val name: String? = "山田"
val result = name?.run {
"こんにちは、$this さん!"
}
println(result)
nameがnullでなければ、runの中が実行されます。
これは「null安全呼び出し」といい、Kotlinの大事な機能のひとつです。
7. Kotlin初心者がrunを使うときの注意点
runは便利ですが、以下のポイントに注意しましょう。
- 処理を詰め込みすぎると読みづらくなる
- 戻り値があるので、何を返すか明確にする
- 複雑なロジックよりも、シンプルな処理に使うのが効果的
読みやすさと意図の明確さを意識して使えば、コードの質がぐんと上がります。
Kotlinを基礎からしっかり学びたい人や、 Java経験を活かしてモダンな言語にステップアップしたい人には、 定番の入門書がこちらです。
基礎からわかるKotlinをAmazonで見る※ Amazon広告リンク
8. runを使った練習課題をやってみよう
Kotlinのrunを理解するには、実際に手を動かすのが一番です。
- 文字列に対して
runで長さや内容をチェックする - 複数の数値計算を
runでまとめる - nullの可能性がある変数に
runを使って安全に処理する
まずは簡単な例から練習して、少しずつ慣れていきましょう。
【未経験OK】Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験する60分
「プログラミングを始めたい」を形にする。最新言語Kotlinで楽しむ、ものづくりの第一歩。
本講座は、プログラミング経験が全くない方のためのエントリー講座です。「コードを書くってどういうこと?」という基本から、世界中で使われている最新言語Kotlin(コトリン)を使って、実際にプログラムを動かすまでを体験します。難しい理屈よりも、まずは「自分の手で動かす楽しさ」を最短距離で実感していただきます。
具体的な体験内容と環境
【つくるもの】
簡単な言葉を入力すると自動で返答してくれる「対話型ミニプログラム」や、計算を自動化する「便利ツール」をゼロから作成します。黒い画面に自分の書いた文字が表示される瞬間は、最高の感動体験です。
【開発環境】
プロのエンジニアが実際に使っている開発ツールIntelliJ IDEA(インテリジェイ)をインストールします。ボタン一つで日本語化し、初心者でも迷わず操作できる「魔法の設定」を一緒に行います。
この60分で得られる3つの体験
プロと同じ道具を揃えることで、明日から一人でもプログラミングを続けられる環境が整います。
「変数」や「型」といった難しい言葉も、身近な例え話で解説。モヤモヤをゼロにします。
Kotlinは英語に近くて読みやすいのが特徴。自分でコードを読んで、間違いを見つけるコツも伝授します。
※本講座は、パソコン操作が不安な方でも安心して受講いただける完全マンツーマンです。あなたのペースに合わせて、一つずつ丁寧に進めていきます。
Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験