Kotlin Tutorial
Empezando con Kotlin
Buscar..
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 |
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:
- Funciones de nivel de paquete que incluyen la anotación
@JvmName
. - Anotación de objetivos de uso de sitio
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:
- Métodos estáticos incluyendo la anotación
@JvmStatic
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:
- Métodos estáticos incluyendo la anotación @JvmStatic
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!")
}
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.
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.