Nouveau à Kotlin et pas mal de questions et réponses, principalement en Java. Après avoir suivi la documentation et vérifier de nombreux SO questions / réponses Studio Android se plaint sur les éléments suivants dans une fonction. La fonction est cotes em> est une arrayof (chaînes) p> Il est écrit pour P> qu'il devrait s'agir d'une unité em> mais trouvé string em>. RandomValue doit être un entier tel que défini par le Docs a> Utiliser NEXIGNEINT Sauf si j'ai mal interprété les documents. Je ne vois pas la question. J'essaie juste de renvoyer au hasard une chaîne de la matrice. Je pensais peut-être qu'un autre faux positif du studio, donc j'ai nettoyé le projet, mais cela s'arrête ici sur la construction. N'importe qui voyez ce que c'est que je fais mal. P> p>
3 Réponses :
Votre fonction ne spécifie pas de type de retour, c'est pourquoi le compilateur s'attend à une «unité» qui serait identique à celle de Java.
Lorsque vous souhaitez renvoyer une chaîne, vous devez le préciser comme si P>
fun getRandomQuote(): String {
val randomValue = Random.nextInt(quotes.size)
return quotes[randomValue]
}
Merci à éviter. C'était la solution. Apprécier l'explication.
Vous êtes juste en train de manquer ce puisque vous revenez de la fonction qui est une chaîne. Si nous ne retournons rien, cela signifie son unité à Kotlin et nous n'avons pas à le mentionner et de le renvoyer. Autre que cela, nous avons pris mention de ce que nous retournons en mettant le droit au côlon.
ex: p>
Comme les autres réponses indiquées, votre fonction est manquante type de retour, donc par défaut, c'est J'aimerais proposer un autre moyen plus succinct de choisir un élément aléatoire à partir d'une matrice à l'aide du générateur de nombres aléatoires par défaut: utilisez simplement le unité code>. Spécification du type de retour comme string code> corrige l'erreur. aléatoire code> fonction d'extension disponible sur les collections et Réseaux. P> val colors = arrayOf("red", "blue", "yellow")
val randomColor = colors.random()