Articles of syntax

¿Por qué Kotlin no implementa Int.plus (value: String)?

Causa incomodidad cuando puedes hacer eso: val string = " abc " val integer = 8 val result = string + integer y no puede hacer: val result = integer + string ¿Tiene un significado oculto o es una omisión?

¿Cómo declarar e inicializar un MutableSet en Kotlin?

¿Cómo declarar la variable MutableSet<int> inicializada a {1, 2, 3}?

Motivo de la precedencia de los operadores con un tipo en el lado derecho

http://confluence.jetbrains.net/display/Kotlin/Grammar#Grammar-Precedence proporciona la tabla de precedencia del operador para Kotlin, incluidos los operadores con un tipo en el lado derecho, : , as y as? , que tienen precedencia entre los operadores de multiplicación y prefijo. ¿Hay alguna razón para darles esa preference particular? No puedo pensar en una situación en la que sería necesario […]

¿Hay alguna manera de anidar una enumeración dentro de una class de datos en Kotlin?

¿Hay alguna manera de anidar una enumeración dentro de una class de datos en Kotlin? data class D(val a:Any) { enum class E {F,G} … } ¿O declararlo en línea dentro de una function? fun foo() { enum class E {F,G} doSomething() } No puedo encontrar documentation sobre las reglas para el que se permite […]

Kotlin: elementos condicionales durante la creación del map

¿Hay alguna manera de hacer algo como esto en Kotlin? mapOf( "key1" to var1, "key2" to var2, if(var3 > 5) "key3" to var3 ) ¿O la única forma es agregar la key "key3" después de crear el map? Me gustaría agregar un elemento a un map solo si se cumple alguna condición.

Argumentos pnetworkingeterminados de Kotlin: prohíbe llamadas a cero arguments

En mi proyecto tengo una function como esta: fun doCoolStuff(arg1: Int = 0, arg2: String? = null) { } Lo cual quiero que lo use en los siguientes casos: obj.doCoolStuff(101) // only first argument provided obj.doCoolStuff("102") // only second argument provided obj.doCoolStuff(103, "104") // both arguments provided Pero no en este: obj.doCoolStuff() // illegal case, […]

Kotlin: accediendo al parámetro de when-statement

¿Hay alguna manera de get el valor de la expresión que pasé a la statement when ? En mi aplicación tengo un KeyListener así _content.addKeyListener(object : KeyAdapter() { override fun keyPressed(e: KeyEvent?) = when(e?.keyCode) { KeyEvent.VK_T -> mainWindow.enterTrainingState() KeyEvent.VK_P -> mainWindow.enterPlayState() KeyEvent.VK_E -> mainWindow.close() else -> println(e?.keyCode) } }) ¿Tiene Kotlin una syntax orderada para […]

¿Cómo puedo hacer un salto de línea (continuación de línea) en Kotlin?

Tengo una larga línea de código que quiero dividir entre múltiples líneas. ¿Qué uso y cuál es la syntax? Por ejemplo, agregar un montón de cadenas: val text = "This " + "is " + "a " + "long " + "long " + "line"

Operador interesante '===' en Kotlin

¿Qué operador '===' hacer en Kotlin? ¿Como funciona? ¿Podemos verificar la igualdad de reference? val a: Int = 10000 print(a === a) // Prints 'true' val boxedA: Int? = a val anotherBoxedA: Int? = a print(boxedA === anotherBoxedA) // !!!Prints 'false'!!! pero en el caso: var a : Int = 1000 var b : Int […]

Plantillas que escapan en cadenas multilínea Kotlin

Si quiero usar cadenas de acceso múltiple $ sign in, ¿cómo puedo escaping? val condition = """ … $eq … """ $eq se analiza como una reference a una variable. ¿Cómo escaping $ , para que no se reconozca como reference a la variable? (Kotlin M13)