Kotlinコードを簡単に見てみる
プログラムの開始点
すでに前でも紹介したHello Worldプログラムから見ていこう。Kotlinの基本文法はJavaと同じくmain()関数から始まる。main関数はクラスに属さず、パッケージの直下に置く必要がある。パッケージ名はJavaと同じように、ドメイン名を逆順にし、ドット(.)で区切るスタイルである。
Kotlinのソースコードの拡張子には.kt、.ktsを使用する。.ktファイルはKotlinコンパイラーでコンパイルされるもので、.ktsファイルはKotlinスクリプティングサポートによって実行される。
Hello World!
Hello, world!を出力するプログラムは次のとおりである。HelloWorld.ktファイルには.kt拡張子を付ける。
package com.devkuma.sample
fun main() {
println("Hello, world!")
}
Output:
Hello, world!!!
実際に実行するには、KotlinコンパイラーまたはIntelliJ IDEA(+ Kotlinプラグイン)を使用する。簡単に実行したい場合は、Kotlin PlaygroundでWebブラウザーからKotlinコードを編集して実行してもよい。
mainコマンド引数
上ではmain関数の引数を省略したが、引数としてargs: Array<String>のように入れることができる。
argsはArray<String>を見れば分かるように文字列配列なので、複数の値を文字列パラメーターとして受け取ることができ、args[0]で最初のパラメーターを取得できる。
パラメーターがない場合にargs[0]へアクセスするとArrayIndexOutOfBoundsException例外が発生するが、contentToString()メソッドを使用すればこれを防げる。このメソッドは、パラメーターがない場合に空配列([])を表示する。
fun main(args: Array<String>) {
//println("program arguments: ${args[0]}");
println("Program arguments: ${args.contentToString()}")
}
Output:
Hello World!
Program arguments: []
コメント
コメントには1行コメントと複数行コメントがある。
fun main(args:Array<String>){
// 1行コメント
/*
複数行コメント
*/
}
行末のセミコロン
行末のセミコロン(;)は省略できる。付けても問題ないが、省略されることが多い。
println( "Hello!")
println( "Hello!");
コーディング規則
次のようなコーディング規則がある。
- 変数名と関数名にはcamel caseを使用する(例:
createObject)。 - データ型、クラス名は大文字で始める(例:
String)。 - 関数名やプロパティ名は小文字で始める(例:
marginWidth)。 - インデントには4つのスペースを使用する。
- public関数はKotlin Docドキュメント(KDoc)を参考にする。
文字列宣言
// 文字列宣言
val hoge = "aiueo"
// 型宣言も可能
val hoge : String = "aiueo"
// 数値宣言
val number = 1
データ型の宣言は明示的に行うこともあるが、宣言がなくても推論できる場合は省略できる。
文字列テンプレート
StringTemplate.kt
class Test {
fun printStr():String{
return "test"
}
}
fun main(args:Array<String>) {
val num1 = 34
println("num is $num1")
val test = Test()
println("test function ${test.printStr()}")
}
println()関数では、文字列内で$記号を明示するだけで変数をそのまま使用できる。
標準出力print、println
PrintTutorial.kt
fun main(args: Array<String>) {
print("한줄 출력")
print("입니다. \n")
println("자동으로 줄바꿈 해줍니다.")
print("그래서 저는 여기에 표시됩니다.")
}
Output:
한줄 출력입니다.
자동으로 줄바꿈 해줍니다.
그래서 저는 여기에 표시됩니다.
print()メソッドは1行に連続して出力され、println()は自動で改行する。
print()メソッドの最後の文字列に改行文字(\n)を入れると、println()を呼び出したように改行される。
キーワード
// Hard keywords
as (cast) as (import) as? break
class continue do else
false for fun if
in !in interface is
!is null object package
return super this throw
true try typealias typeof
val var when while
// Soft keywords
by catch constructor delegate
dynamic field file finally
get import init param
property receiver set setparam
where
// Modifier keywords
actual abstract annotation companion
const crossinline data enum
expect external final infix
inline inner internal lateinit
noinline open operator out
override private protected public
reified sealed suspend tailrec
vararg
// Special identifiers
field it