KotlinIniziare con Kotlin

Osservazioni

Kotlin è un linguaggio di programmazione orientato agli oggetti con funzionalità statiche sviluppato da JetBrains che si rivolge principalmente alla JVM. Kotlin è stato sviluppato con l'obiettivo di essere veloce da compilare, retrocompatibile, molto sicuro da usare e al 100% interoperabile con Java. Kotlin è anche sviluppato con l'obiettivo di fornire molte delle funzionalità richieste dagli sviluppatori Java. Il compilatore standard di Kotlin consente di compilare sia in bytecode Java per JVM che in JavaScript.

Compilando Kotlin

Kotlin ha un plugin IDE standard per Eclipse e IntelliJ. Kotlin può anche essere compilato usando Maven , usando Ant e usando Gradle , o tramite la riga di comando .

Vale la pena notare in $ kotlinc Main.kt restituirà un file di classe java, in questo caso MainKt.class (Notare il Kt aggiunto al nome della classe). Tuttavia, se si dovesse eseguire il file di classe utilizzando $ java MainKt java, verrà $ java MainKt la seguente eccezione:

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

Per eseguire il file di classe risultante utilizzando Java, è necessario includere il file jar runtime di Kotlin nel percorso di classe corrente.

java -cp .:/path/to/kotlin/runtime/jar/kotlin-runtime.jar MainKt

Versioni

Versione Data di rilascio
1.0.0 2016/02/15
1.0.1 2016/03/16
1.0.2 2016/05/13
1.0.3 2016/06/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

Compilare ed eseguire il codice Kotlin nella riga di comando

Poiché java fornisce due diversi comandi per compilare ed eseguire il codice Java. Lo stesso di Kotlin fornisce anche comandi diversi.

javac per compilare i file java. java per eseguire file java.

Lo stesso di kotlinc per compilare i file kotlin per eseguire i file kotlin.

Ciao mondo

Tutti i programmi Kotlin iniziano dalla funzione main . Ecco un esempio di un semplice programma Kotlin "Hello World":

package my.program

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

Inserisci il codice precedente in un file chiamato Main.kt (questo nome file è interamente arbitrario)

Quando si esegue il targeting della JVM, la funzione verrà compilata come metodo statico in una classe con un nome derivato dal nome file. Nell'esempio sopra, la classe principale da eseguire sarebbe my.program.MainKt .

Per modificare il nome della classe che contiene funzioni di primo livello per un determinato file, posiziona la seguente annotazione nella parte superiore del file sopra l'istruzione del pacchetto:

@file:JvmName("MyApp")
 

In questo esempio, la classe principale da eseguire sarebbe ora my.program.MyApp .

Guarda anche:

Hello World utilizza un oggetto Companion

Simile all'utilizzo di una dichiarazione oggetto, è possibile definire la funzione main di un programma Kotlin utilizzando un oggetto compagno di una classe.

package my.program

class App {
    companion object {
        @JvmStatic fun main(args: Array<String>) {
            println("Hello World")
        }
    }
}
 

Il nome della classe che verrà eseguito è il nome della classe, in questo caso è my.program.App .

Il vantaggio di questo metodo su una funzione di primo livello è che il nome della classe per l'esecuzione è più evidente, ed eventuali altre funzioni che si aggiungono si ambito nella classe App . Questo è simile all'esempio della Object Declaration , a parte il controllo sull'istanza di qualsiasi classe per svolgere ulteriori attività.

Una leggera variazione che istanzia la classe a fare il vero "ciao":

class App {
    companion object {
        @JvmStatic fun main(args: Array<String>) {
            App().run()
        }
    }

    fun run() {
        println("Hello World")
    }
}
 

Guarda anche:

Ciao mondo usando una dichiarazione di oggetti

In alternativa è possibile utilizzare una dichiarazione oggetto che contiene la funzione principale per un programma Kotlin.

package my.program

object App {
    @JvmStatic fun main(args: Array<String>) {
        println("Hello World")
    }
}
 

Il nome della classe che verrà eseguito è il nome del tuo oggetto, in questo caso è my.program.App .

Il vantaggio di questo metodo su una funzione di primo livello è che il nome della classe per l'esecuzione è più evidente, ed eventuali altre funzioni che si aggiungono si ambito nella classe App . Quindi hai anche un'istanza singleton di App per memorizzare lo stato e fare altro lavoro.

Guarda anche:

Metodi principali che utilizzano vararg

Tutti questi stili principali del metodo possono essere utilizzati anche con vararg :

package my.program

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

Lettura dell'input da Command Line

Gli argomenti passati dalla console possono essere ricevuti nel programma Kotlin e possono essere utilizzati come input. È possibile passare N (1 2 3 e così via) numeri di argomenti dal prompt dei comandi.

Un semplice esempio di un argomento da linea di comando in 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;

}
 

Qui, inserisci due numeri dalla riga di comando per trovare il numero massimo. Produzione :

Enter Two number
71 89 // Enter two number from command line

The value of b is 89
Max number is: 89
 

Per !! Operatore Si prega di verificare Null Safety .

Nota: l'esempio precedente viene compilato ed eseguito su Intellij.