KotlinEmpezando con Kotlin


Observaciones

Kotlin es un lenguaje de programación orientado a objetos de tipo estático desarrollado por JetBrains que se dirige principalmente a la JVM. Kotlin se ha desarrollado con el objetivo de ser rápido de compilar, compatible con versiones anteriores, muy seguro para el tipo, y 100% interoperable con Java. Kotlin también se ha desarrollado con el objetivo de proporcionar muchas de las funciones que buscan los desarrolladores de Java. El compilador estándar de Kotlin permite compilarlo tanto en el bytecode de Java para la JVM como en JavaScript.

Compilando kotlin

Kotlin tiene un complemento IDE estándar para Eclipse e IntelliJ. Kotlin también se puede compilar usando Maven , usando Ant y usando Gradle , o por medio de la línea de comandos .

Vale la pena señalar que en $ kotlinc Main.kt generará un archivo de clase java, en este caso MainKt.class ( MainKt.class cuenta que el Kt se adjunta al nombre de la clase). Sin embargo, si uno fuera a ejecutar el archivo de clase utilizando $ java MainKt java se lanzará la siguiente excepción:

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

Para ejecutar el archivo de clase resultante utilizando Java, se debe incluir el archivo jar de tiempo de ejecución Kotlin en la ruta de la clase actual.

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

Versiones

Versión Fecha de lanzamiento
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

Compilar y ejecutar el código Kotlin en la línea de comandos

Como Java, proporcione dos comandos diferentes para compilar y ejecutar código Java. Igual que Kotlin también te proporcionan diferentes comandos.

javac para compilar archivos java. java para ejecutar archivos java.

Igual que kotlinc para compilar archivos kotlin para ejecutar archivos kotlin.

Hola Mundo

Todos los programas de Kotlin comienzan en la función main . Aquí hay un ejemplo de un programa simple "Hello World" de Kotlin:

package my.program

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

Coloque el código anterior en un archivo llamado Main.kt (este nombre de archivo es completamente arbitrario)

Cuando se dirige a la JVM, la función se compilará como un método estático en una clase con un nombre derivado del nombre de archivo. En el ejemplo anterior, la clase principal a ejecutar sería my.program.MainKt .

Para cambiar el nombre de la clase que contiene funciones de nivel superior para un archivo en particular, coloque la siguiente anotación en la parte superior del archivo sobre la declaración del paquete:

@file:JvmName("MyApp")
 

En este ejemplo, la clase principal a ejecutar ahora sería my.program.MyApp .

Ver también:

Hola mundo usando un objeto compañero

Similar a usar una Declaración de Objeto, puede definir la función main de un programa Kotlin usando un Objeto Acompañante de una clase.

package my.program

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

El nombre de la clase que ejecutará es el nombre de su clase, en este caso es my.program.App .

La ventaja de este método sobre una función de nivel superior es que el nombre de la clase que se ejecutará es más evidente, y cualquier otra función que agregue se incluye en la App la clase. Esto es similar al ejemplo de la Object Declaration , aparte de que usted tiene el control de crear instancias de cualquier clase para realizar un trabajo adicional.

Una pequeña variación que crea una instancia de la clase para hacer el "hola" real:

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

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

Ver también:

Hola mundo usando una declaración de objeto

Alternativamente, puede usar una Declaración de Objeto que contiene la función principal para un programa Kotlin.

package my.program

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

El nombre de la clase que ejecutará es el nombre de su objeto, en este caso es my.program.App .

La ventaja de este método sobre una función de nivel superior es que el nombre de la clase que se ejecutará es más evidente, y cualquier otra función que agregue se incluye en la App la clase. También tiene una instancia única de la App para almacenar el estado y hacer otro trabajo.

Ver también:

Principales métodos utilizando varargs.

Todos estos estilos de métodos principales también se pueden usar con varargs :

package my.program

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

Lectura de entrada desde la línea de comandos

Los argumentos pasados ​​desde la consola se pueden recibir en el programa Kotlin y se pueden usar como entrada. Puede pasar N (1 2 3 y así sucesivamente) números de argumentos desde el símbolo del sistema.

Un ejemplo simple de un argumento de línea de comando en 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;

}
 

Aquí, ingrese dos números desde la línea de comando para encontrar el número máximo. Salida:

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

The value of b is 89
Max number is: 89
 

Por !! Operador Por favor, compruebe Null Safety .

Nota: el ejemplo anterior compila y ejecuta en Intellij.