Kotlin チュートリアル
Kotlinを使い始める
サーチ…
備考
Kotlinは、主にJVMを対象とするJetBrainsによって開発された静的型オブジェクト指向プログラミング言語です。 Kotlinは、コンパイル、後方互換、非常に型安全、100%Javaとの相互運用性という目標を持って開発されています。 Kotlinはまた、Java開発者が望む多くの機能を提供することを目標に開発されています。 Kotlinの標準コンパイラでは、JVM用のJavaバイトコードとJavaScript用の両方にコンパイルできます。
Kotlinをコンパイルする
Kotlinには、EclipseとIntelliJ用の標準IDEプラグインがあります。 KotlinはMavenを使って、Antを使って、Gradleを使って 、またはコマンドラインからコンパイルすることもできます。
$ kotlinc Main.kt
はjavaクラスファイルを出力します。この場合、 MainKt.class
(クラス名にKtが追加されていることに注意してください)。しかし、 $ java MainKt
javaを使用してクラスファイルを実行すると、次の例外がスローされます。
Exception in thread "main" java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
at MainKt.main(Main.kt)
Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
Javaを使用して結果のクラスファイルを実行するには、現在のクラスパスにKotlinランタイムJarファイルを含める必要があります。
java -cp .:/path/to/kotlin/runtime/jar/kotlin-runtime.jar MainKt
バージョン
バージョン | 発売日 |
---|---|
1.0.0 | 2016-02-15 |
1.0.1 | 2016-03-16 |
1.0.2 | 2016年5月13日 |
1.0.3 | 2016年6月30日 |
1.0.4 | 2016-09-22 |
1.0.5 | 2016-11-08 |
1.0.6 | 2016-12-27 |
1.1.0 | 2017-03-01 |
1.1.1 | 2017-03-14 |
1.1.2 | 2017-04-25 |
1.1.3 | 2017-06-23 |
こんにちは世界
全てのKotlinプログラムはmain
機能から始まります。単純なKotlinの "Hello World"プログラムの例を以下に示します。
package my.program
fun main(args: Array<String>) {
println("Hello, world!")
}
上記のコードをMain.kt
という名前のファイルにMain.kt
ます(このファイル名は完全に任意です)
JVMを対象とする場合、ファンクションはファイル名から派生した名前を持つクラス内の静的メソッドとしてコンパイルされます。上記の例では、実行するメインクラスはmy.program.MainKt
です。
特定のファイルのトップレベル関数を含むクラスの名前を変更するには、ファイルの先頭にpackageステートメントの上に次のアノテーションを挿入します。
@file:JvmName("MyApp")
この例では、実行するメインクラスはmy.program.MyApp
なりmy.program.MyApp
。
参照:
-
@JvmName
アノテーションを含むパッケージレベルの関数 。 - アノテーション使用サイトのターゲット
オブジェクト宣言を使用したHello World
代わりに、Kotlinプログラムのmain関数を含むObject Declarationを使用することもできます。
package my.program
object App {
@JvmStatic fun main(args: Array<String>) {
println("Hello World")
}
}
実行するクラス名はオブジェクトの名前で、この場合はmy.program.App
です。
このメソッドのトップレベル関数の利点は、実行するクラス名が自明であり、追加する他の関数がクラスApp
スコープされていることです。また、ステートを保存して他の作業を行うためのSingletonのApp
インスタンスもあります。
参照:
-
@JvmStatic
アノテーションを含む静的メソッド
コンパニオンオブジェクトを使用したHello World
オブジェクト宣言と同様に、クラスのコンパニオンオブジェクトを使用してKotlinプログラムのmain
関数を定義することができます。
package my.program
class App {
companion object {
@JvmStatic fun main(args: Array<String>) {
println("Hello World")
}
}
}
実行するクラス名はクラスの名前で、この場合はmy.program.App
です。
このメソッドのトップレベル関数の利点は、実行するクラス名が自明であり、追加する他の関数がクラスApp
スコープされていることです。これは、 Object Declaration
例と似ていますが、それ以上の作業を行うためにクラスをインスタンス化することを制御していること以外は同じです。
実際の "hello"を行うためにクラスをインスタンス化するわずかなバリエーション:
class App {
companion object {
@JvmStatic fun main(args: Array<String>) {
App().run()
}
}
fun run() {
println("Hello World")
}
}
参照:
- @JvmStaticアノテーションを含む静的メソッド
varargsを使用する主なメソッド
これらの主なメソッドスタイルは、すべてvarargsで使用することもできます :
package my.program
fun main(vararg args: String) {
println("Hello, world!")
}
コマンドラインでKotlinコードをコンパイルして実行する
javaはJavaコードをコンパイルし実行するための2つの異なるコマンドを提供しています。 Kotlinと同じことはあなたに別々のコマンドを提供します。
javaファイルをコンパイルするjavac
。 java
はjavaファイルを実行します。
同じkotlinc
kotlinファイルをコンパイルするには、 kotlin
ファイルをkotlin実行します。
コマンドラインからの入力の読み取り
コンソールから渡された引数は、Kotlinプログラムで受け取ることができ、入力として使用できます。コマンドプロンプトからN(1 2 3など)個の引数を渡すことができます。
Kotlinのコマンドライン引数の簡単な例。
fun main(args: Array<String>) {
println("Enter Two number")
var (a, b) = readLine()!!.split(' ') // !! this operator use for NPE(NullPointerException).
println("Max number is : ${maxNum(a.toInt(), b.toInt())}")
}
fun maxNum(a: Int, b: Int): Int {
var max = if (a > b) {
println("The value of a is $a");
a
} else {
println("The value of b is $b")
b
}
return max;
}
ここでは、最大数を見つけるためにコマンドラインから2つの数字を入力します。出力:
Enter Two number
71 89 // Enter two number from command line
The value of b is 89
Max number is: 89
にとって !!オペレータNull Safetyをチェックしてください。
注:上の例はIntellijでコンパイルして実行します。