La "coincidencia de patrón" no funciona para la cláusula Int (twig)

Tengo este código en Kotlin (que comencé a aprender):

package io.shido.learning import java.time.Instant fun typeCheck(any: Any): Any = when (any) { (any is Int && any < 10) -> "(small) integer" is Int -> "integer" is Double -> "double" is String -> "string" else -> "another Any" } fun main(args: Array<String>) { println("type check for: 5 (${typeCheck(5)})") println("type check for: 20 (${typeCheck(20)})") println("type check for: 56.0 (${typeCheck(56.0)})") println("type check for: \"a string\" (${typeCheck("a string")})") println("type check for: Instant (${typeCheck(Instant.now())})") } 

… así que esperaba que typeCheck(5) devolviera (small) integer y no integer como lo hace actualmente.

¿Alguien tiene alguna idea? La primera twig es true hecho para 5 .

enter image description here

Cuando pasa un argumento, when comtesting si el argumento coincide con los valores en las twigs, y 5 no coincide con los cálculos true en la primera twig. Entonces, básicamente, puedes arreglar tu código de esta manera:

 fun typeCheck(any: Any): Any = when { (any is Int && any < 10) -> "(small) integer" any is Int -> "integer" any is Double -> "double" any is String -> "string" else -> "another Any" } 

o

 fun typeCheck(any: Any): Any = when (any) { in 0..10 -> "(small) integer" is Int -> "integer" is Double -> "double" is String -> "string" else -> "another Any" } 

Ver cuando la expresión

  • ¿Cómo hago que IntelliJ respete el directory de salida del complemento Maven Kotlin?
  • ejecutar HelloAndroid desde Gradle?
  • Cómo implementar un reciclador de carga perezosa. Adaptador de vista como el reciclador de reino. Ver el adaptador usando kotlin.
  • Cómo emular el mismo comportamiento en kotlin
  • Función de extensión estática en una class de Java
  • ¿Por qué obtengo una android.os.TransactionTooLargeException en mi aplicación de Android escrita en Kotlin / rxJava cuando salgo de la aplicación? (onExit / onPause)?
  • Spring Boot: el filter personalizado no funciona después de habilitar el autoenvío del repository
  • MyBatis con classs de datos inmutables en Kotlin
  • ¿Por qué las inputs de Kotlin Pair no son mutables?
  • ¿Cómo puedo inicializar la variable antes de cada testing usando el marco kotlin-test
  • La variable de vista de Kotlin es inesperadamente nula en el método Activity onCreate