3. Kotlin 構文 (Syntax)
概要
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!
実行はできます。
ここまでの実行例のスクリーンショットです。
警告が出る理由は、Kotlin Examples のページにも記載があります。
kotlin コンパイラ 1.3 より前までは、main 関数は、Array<String> の引数を持つことが必須でした。このため、1.3 より前の情報をもとに記載された資料だと、fun main(args: Array<String>) となっています。
1.3 以降は、必須ではなくなったため、逆に 関数内で、args で指定した引数を利用していない場合は、警告が表示されるようになっています。
1.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