※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。

3. Kotlin 構文 (Syntax)

2023年7月2日

概要

Kotlin の基本構文について記載します。

プログラムのエントリーポイント

main 関数

Kotlin のプログラムのエントリーポイントは main 関数です。すなわち、Kotlin のプログラムは main 関数が実行起点なので必ず作成する形となります。

以下は、実行環境を作成のページでも記載した Hello world! を出力するプログラムです。

fun main() {
    println("Hello, world!")
}

このコンパイルしてプログラムを実行すると、標準出力に以下を表示します。

コンパイル

kotlinc HelloWorld.kt -include-runtime -d HelloWorld.jar

実行

java -jar HelloWorld.jar

出力結果

Hello world!

Kotlin Playground で実行

main 関数 (引数あり)

ウェブサイトを検索すると、Kotlin の Hello world! として引数 (args) がある形も見つかると思います。

fun main(args: Array<String>) {
  println("Hello, world!")
}

これを 本稿更新時点で最新の kotlinc (kotlin-compiler-1.8.22.zip) でコンパイルすると警告が出ます。
(IntelliJ IDEA などでは警告は出ないようです。)

コンパイル

kotlinc HelloWorld2.kt -include-runtime -d HelloWorld2.jar

警告メッセージ

HelloWorld2.kt:1:10: warning: parameter 'args' is never used
fun main(args: Array<String>) {
         ^

実行

java -jar HelloWorld2.jar

結果

Hello, world!

実行はできます。

ここまでの実行例のスクリーンショットです。

HelloWorld! 実行例

警告が出る理由は、Kotlin Examples のページにも記載があります。
kotlin コンパイラ 1.3 より前までは、main 関数は、Array<String> の引数を持つことが必須でした。このため、1.3 より前の情報をもとに記載された資料だと、fun main(args: Array<String>) となっています。
1.3 以降は、必須ではなくなったため、逆に 関数内で、args で指定した引数を利用していない場合は、警告が表示されるようになっています。

1.3.0 で実行した際の例です。

HelloWorld! args あり kotlinc1.3.0

Kotlin Playground で実行

文末のセミコロンは不要

Kotlin のプログラムコードにおいて、文の後ろにセミコロン (;) は不要です。記載してもOKです。

Kotlin 以外のプログラミング言語 (Java や C++ など) では、文末のセミコロンは必須です。

例えば、以下のようにセミコロンありなしの行をで記載した場合、どちらも一文として解釈されてコンパイル時や実行時のエラーとはなりません。

fun main() {
    println("文末にセミコロンあり");
    println("文末にセミコロンなし")
}

コンパイル

kotlinc Semicolon.kt -include-runtime -d Semicolon.jar

実行

java -jar Semicolon.jar

結果

文末にセミコロンあり
文末にセミコロンなし
文末にセミコロンありなしでの実行例

Kotlin Playground で実行

コメント

コメントは、コンパイラでは無視されますが、ソースコードを人間が理解しやすくする目的で記載されます。

一行コメント

2つスラッシュを連続して入力 (//) した後は、それ以降行末までコメントとして扱われます。

fun main() {
    // Hello World! と出力
    println("Hello World!")
}

文の途中にも記載可能です。

fun main() {
    println("Hello World!") // Hello World! と出力
}

複数行コメント

複数行にわたってコメントアウトする場合は、/* と */ で囲みます。
ブロックコメントとも呼ばれるようです。

fun main() {
    println("Hello World!")

    /*
    println("Hello Kotlin!")
    println("Hello Kotlin World!")
    */
}

ブロックコメントを利用して KDoc を記載する方法があります。
詳細は 公式サイトの情報をご参照ください。
https://kotlinlang.org/docs/kotlin-doc.html