サーチ…


備考

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

参照:

オブジェクト宣言を使用した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インスタンスもあります。

参照:

コンパニオンオブジェクトを使用した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")
    }
}

参照:

varargsを使用する主なメソッド

これらの主なメソッドスタイルは、すべてvarargsで使用することもできます

package my.program

fun main(vararg args: String) {
    println("Hello, world!")
}

コマンドラインでKotlinコードをコンパイルして実行する

javaはJavaコードをコンパイルし実行するための2つの異なるコマンドを提供しています。 Kotlinと同じことはあなたに別々のコマンドを提供します。

javaファイルをコンパイルするjavacjavaは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でコンパイルして実行します。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow