0Pricing
Android Academy · レッスン

関数とラムダ

パラメーターと戻り値の型を指定して関数を定義し、デフォルト引数と名前付き引数を使い、簡潔なラムダ式を書きます。

「関数とラムダ」はCoddyKit上の無料Android Academyレッスンです。 これはレッスン2/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAndroid Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Android Academyコースには全3レッスンが含まれています。

関数を使う理由

関数を使うと、コードのまとまりを一度書くだけで、どこからでも再利用できます。

  • 重複を減らせます
  • コードを読みやすく、テストしやすくできます
  • 大きな問題を小さな部分に分割できます

Kotlinでは関数は第一級オブジェクトです。変数に格納したり、他の場所に渡したりできます。

関数の基本構文

Kotlinの関数ではfunキーワードを使います。

fun greet(name: String): String {
    return "Hello, $name!"
}

fun main() {
    val msg = greet("Alice")
    println(msg)  // Hello, Alice!

    println(greet("Bob"))  // Hello, Bob!
}

単一式関数

関数本体が1つの式だけで構成される場合は、=を使って波かっことreturnを省略できます。

fun square(n: Int): Int = n * n

fun add(a: Int, b: Int) = a + b  // type inferred

fun main() {
    println(square(5))   // 25
    println(add(3, 7))   // 10
}

デフォルト引数と名前付き引数

Kotlinの関数では、パラメーターにデフォルト値を指定できます。オーバーロードは必要ありません。

  • デフォルト:fun greet(name: String = "World")
  • 名前付き:greet(name = "Alice")のように呼び出すと、引数の順番を気にせずに済みます

デフォルト引数と名前付き引数の実践

デフォルト引数を使うと、APIをすっきり保てます。

fun buildProfile(
    name: String,
    age: Int = 0,
    role: String = "User"
): String {
    return "$name | age=$age | $role"
}

fun main() {
    println(buildProfile("Alice"))
    println(buildProfile("Bob", age = 30))
    println(buildProfile("Carol", 25, "Admin"))
}

ラムダとは

ラムダは匿名関数、つまり名前のない関数です。

  • 構文:{ params -> body }
  • 変数に格納できます:val double = { x: Int -> x * 2 }
  • 引数として別の関数に渡せます

ラムダはAndroidのいたるところで使われます。クリックリスナー、リスト変換、コルーチンなどがその例です。

ラムダの例

ラムダは通常の関数と同じように、格納して呼び出せます。

fun main() {
    val double = { x: Int -> x * 2 }
    println(double(4))   // 8

    val add = { a: Int, b: Int -> a + b }
    println(add(3, 5))   // 8

    // Lambda with no params
    val sayHi = { println("Hi!") }
    sayHi()              // Hi!
}

高階関数

高階関数とは、別の関数をパラメーターとして受け取るか、関数を返す関数です。

Kotlin標準ライブラリには、filter、map、forEachなどの高階関数が多数用意されています。

末尾ラムダ構文:最後の引数がラムダの場合、ラムダをかっこの外に移動できます。

末尾ラムダ構文

ラムダを最後の引数として、かっこの外に渡します。

fun applyTwice(n: Int, operation: (Int) -> Int): Int {
    return operation(operation(n))
}

fun main() {
    val result = applyTwice(3) { x -> x * 2 }
    println(result)  // 12  (3 * 2 = 6, 6 * 2 = 12)

    // 'it' is the implicit single parameter
    val doubled = applyTwice(5) { it + it }
    println(doubled) // 20
}

クイックチェック

このコードを見て、何が出力されるか考えてみてください。

val triple = { x: Int -> x * 3 }
println(triple(4))

まとめ:関数とラムダ

次のことを学びました。

  • funで、パラメーターと戻り値の型を持つ関数を定義します
  • 単一式関数では=による省略構文を使います
  • デフォルト引数と名前付き引数でオーバーロードを置き換えられます
  • ラムダは匿名関数です:{ params -> body }
  • 高階関数は関数をパラメーターとして受け取ります

次は、条件分岐とループでプログラムの流れを制御します。

よくある質問

「関数とラムダ」レッスンは無料ですか?

はい。「関数とラムダ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Android Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Android Academyコースには全3レッスンが含まれています。

「関数とラムダ」で何を学びますか?

パラメーターと戻り値の型を指定して関数を定義し、デフォルト引数と名前付き引数を使い、簡潔なラムダ式を書きます。 ブラウザで直接実行するハンズオンコードでAndroid Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Android Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAndroid Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/3です。

「関数とラムダ」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAndroid Academyレッスンでコードを書いて実行できますか?

はい。すべてのAndroid Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 変数とデータ型
  2. 関数とラムダ
  3. 制御フロー
← Android Academyに戻る