Soy un principiante en kotlin (en la codificación en general) y estoy tratando de obtener la siguiente oración: "Los dados de 6 caras [color aleatorio] rodaron [número aleatorio]". Básicamente, la única parte que no puedo obtener correctamente es el color, obtengo "kotlin.Unit" en su lugar. El código que estoy usando está debajo. ¡Muchas gracias de antemano por su ayuda!
fun main() { val myFirstDice = Dice(6) println ("The ${myFirstDice.numSides} sided ${randomColor()} dice rolled ${myFirstDice.roll()}") } class Dice(val numSides: Int){ fun roll(): Int{ return (1..numSides).random() } } fun randomColor() { val list = listOf("black", "yellow", "green") val randomColor = list.shuffled().find { true } }Yo lo haría un poco diferente. No usaría el método shuffled shuffled() , sino que confiaría en el método random() incorporado disponible desde kotlin 1.3 ( documentación de referencia ):
fun randomColor(): String { val list = listOf("black", "yellow", "green") return list.random() }Debe devolver el valor de randomColor :
fun randomColor(): String? { val list = listOf("black", "yellow", "green") val randomColor = list.shuffled().find { true } return randomColor; }