LoginSignup
1
4

Kotlinの基本構文一覧

Posted at

1. HelloWorld

HelloWorld.kt
fun main() {
    println("Hello, World!")
}

2. 変数宣言

valで読み取り専用の変数を宣言します。

val number: Int = 10 // 整数型
val str: String = "Hello Kotlin" // 文字列型
number = 15 // エラー。Val cannot be reassigned

varで通常の変数を宣言します。

var str: String = "Hello Kotlin" // 文字列型
var number: Int = 10 // 整数型
number = 15

Kotlinは変数の型を推論してくれるので、明示的な型の宣言は必要ないことが多いです。

var str = "Hello Kotlin" // Stringに推論される
var number = 10 // Intに推論される

Kotlinの基本のデータ型は以下の通りです。

データ型
Byte 8ビット整数
Short 16ビット整数
Int 32ビット整数
Long 64ビット整数
Float 単精度浮動小数点
Double 倍精度浮動小数点
Char 16ビットUnicode文字
Boolean 'true'または'false'
String 文字列

3. 分岐

if-else

if (number > 0) {
    println("正の数")
} else if (number < 0) {
    println("負の数")
} else {
    println("ゼロ")
}

Kotlinのif文は式であるため以下のように書ける。

val a = 5
val b = 10
var max = if (a > b) a else b

when

var x = 1
when (x) {
    1 -> println("x is 1")
    2 -> println("x is 2")
    else -> println("x is else")
}

kotlinのwhen文は式であるため以下のように書ける。

var result = when (x) {
    1 -> "x is 1"
    2 -> "x is 2"
    else -> "x is neither 1 nor 2"
}

4. 繰り返し

for

val numbers = listOf("one", "two", "three")
for (item in numbers) {
    println("item is $item")
}

for (i in 1..10) {
    println(i)
}

while

var x = 10
while (x > 0) {
    x--
    println(x)

do-while

x = 10
do {
    x--
    println(x)
} while (x > 0)

repeat

repeat(5) {
    println("Hello")
}

5. 関数

fun 【関数名】(【引数】)【戻り値の型】{}

fun add(a: Int, b: Int): Int {
    return a + b
}
fun main() {
    println(add(5, 10)) // 15
}

6. クラスとオブジェクト

以下はプライマリコンストラクタの例。
プロパティの宣言と初期化を1行でまとめることができる。

// クラスの宣言。プライマリコンストラクタを使ってプロパティを宣言。
class Person(var name: String, var age: Int) {
    // メソッド
    fun introduce() {
        println("My name is $name and I am $age years old.")
    }
}
fun main() {
    // オブジェクトの生成。プライマリコンストラクタの値を引数として渡す。
    val person = Person("Alice", 20)
    // メソッドの呼び出し。
    person.introduce() // My name is Alice and I am 20 years old.
}

以下はオブジェクトを生成してからプロパティを設定する例

class User1 {
    var name: String = ""
}
fun main() {
    // オブジェクトを宣言してからプロパティを設定
    val user = User1()
    user.name = "Yamada"
    println(user.name) // Yamada
}

7. エラー処理

try {
    val result = 10 / 0
} catch (e: ArithmeticException) {
    println("Cannot divide by zero!")
}

8. List(配列)

List

後から要素を追加したい場合はMutableListを使用します。

val numbers: List<Int> = listOf(1, 2, 3, 4, 5)
// Listにはaddできない。(コンパイルエラー)
// numbers.add(6)
// Listの値を取得する
println(numbers[0])

val strings: MutableList<String> = mutableListOf("one", "two", "three")
// MutableListにはaddできる。
strings.add("four")
println(strings[0])

Set

Setは値が重複しない要素を保持します。
containsで要素が存在するか確認できます。
後から要素を追加したい場合はMutableSetを使用します。

val numbersSet: Set<Int> = setOf(1, 2, 3, 1)
// Setには重複しない要素が保持される
println(numbersSet) // [1, 2, 3]
// 値が存在しているかの確認ができる
println(numbersSet.contains(1)) // true

val stringsSet: MutableSet<String> = mutableSetOf("one", "two", "three")
// MutableSetにはaddできる
stringsSet.add("four")

9. 辞書(連想配列)

// 変更不可
val capitals: Map<String, String> = mapOf("France" to "Paris", "Japan" to "Tokyo")
// 値の取得
println(capitals["France"])

// 変更可
val mutableCapitals: MutableMap<String, String> = mutableMapOf("France" to "Paris")
// 値の設定
mutableCapitals["Japan"] = "Tokyo"

10. ファイル入出力

useを使うことでリソースを自動で閉じる。

ファイル読み込み

import java.io.File

fun readFile(filePath: String) {
    File(filePath).bufferedReader().use { reader ->
        val content = reader.readText()
        println(content)
    }
}

fun main() {
    val filePath = "input.txt" // 読み込みたいファイルのパス
    readFile(filePath)
}

ファイル書き込み

import java.io.File

fun writeFile(filePath: String, content: String) {
    File(filePath).bufferedWriter().use { writer ->
        writer.write(content)
    }
}

fun main() {
    val filePath = "output.txt" // 書き込みたいファイルのパス
    val content = "Hello, Kotlin!" // ファイルに書き込む内容
    writeFile(filePath, content)
}

以上です。

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4