プログラミング/Kotlin
表示
< プログラミング
Kotlinの概要
[編集]Kotlinは、JetBrains社が2011年に開発したJava仮想マシン(JVM)上で動作するプログラミング言語です。Android開発の公式言語として認定され、サーバーサイド、Web、モバイルアプリケーション開発において急速に普及しています。Javaとの高い互換性を保ちながら、より簡潔で安全なコーディングを可能にする言語設計が特徴です。
基本的な文法と特徴
[編集]変数と型
[編集]Kotlinは型推論と不変性をサポートする現代的な言語です:
// 型推論 val name = "田中太郎" // 不変の変数(val) var age = 30 // 可変の変数(var) // 明示的な型指定 val pi: Double = 3.14159 val isStudent: Boolean = true // null安全性 var nullableString: String? = null // null許容型 var nonNullString: String = "Hello" // null非許容型 // スマートキャスト fun describe(obj: Any) { when (obj) { is Int -> println("整数: ${obj * 2}") is String -> println("文字列: ${obj.length}文字") else -> println("その他の型") } }
関数とラムダ式
[編集]Kotlinの関数定義は柔軟で表現力豊かです:
// 基本的な関数 fun add(a: Int, b: Int): Int { return a + b } // 単一式関数 fun multiply(a: Int, b: Int) = a * b // デフォルト引数 fun greet(name: String, greeting: String = "こんにちは") { println("$greeting、$name!") } // 高階関数とラムダ式 val numbers = listOf(1, 2, 3, 4, 5) val squaredNumbers = numbers.map { it * it } val evenNumbers = numbers.filter { it % 2 == 0 }
オブジェクト指向プログラミング
[編集]クラスとデータクラス
[編集]Kotlinのクラス定義は簡潔で強力です:
// 通常のクラス class Person(val name: String, var age: Int) { fun introduce() { println("私の名前は${name}で、${age}歳です。") } } // データクラス data class Point(val x: Int, val y: Int) // 継承 open class Shape { open fun draw() { println("図形を描画") } } class Circle : Shape() { override fun draw() { println("円を描画") } } // コンパニオンオブジェクト(静的メンバー) class MathUtils { companion object { fun square(x: Int) = x * x } }
関数型プログラミング
[編集]コレクション操作
[編集]Kotlinのコレクション操作は非常に表現力豊かです:
val fruits = listOf("リンゴ", "バナナ", "オレンジ", "メロン") // フィルタリングと変換 val longFruits = fruits .filter { it.length > 4 } .map { it.uppercase() } // 集計操作 val numbers = listOf(1, 2, 3, 4, 5) val sum = numbers.reduce { acc, num -> acc + num } val average = numbers.average() // グルーピング val groupedByLength = fruits.groupBy { it.length }
非同期プログラミング
[編集]コルーチン
[編集]Kotlinのコルーチンは軽量で効率的な非同期処理を実現します:
import kotlinx.coroutines.* suspend fun fetchUserData(userId: Int): String { delay(1000) // 非同期的な遅延 return "ユーザー: $userId のデータ" } fun main() = runBlocking { val job1 = launch { val data1 = fetchUserData(1) println(data1) } val job2 = launch { val data2 = fetchUserData(2) println(data2) } job1.join() job2.join() }
Android開発
[編集]Android向けUI構築
[編集]Kotlinは Android 開発において、Jetpack Composeと統合され、宣言的UIを実現します:
@Composable fun UserProfile(name: String, age: Int) { Column { Text( text = "名前: $name", style = MaterialTheme.typography.h6 ) Text( text = "年齢: $age", style = MaterialTheme.typography.body1 ) } }
おわりに
[編集]Kotlinは、Java仮想マシンの能力を最大限に活用しながら、現代のプログラミングパラダイムを取り入れた言語です。簡潔な文法、null安全性、関数型プログラミングのサポート、そして豊富なライブラリにより、開発者の生産性を大幅に向上させます。
モバイル、Web、サーバーサイドなど、多様な開発シーンで活躍できる言語として、Kotlinは今後さらに注目を集めるでしょう。