Dans Kotlin Comment puis-je Convertir un Int? pour un Int

Je suis en utilisant un HashMap<Int, Int> dans Kotlin et quand je get hors de lui le type de retour est Int?.

Comment puis-je convertir des Int? à un Int?

Jusqu'à présent, j'ai essayé d'utiliser Int?.toInt(), mais qui semble être de retour un Int?.

Je suis en train d'écrire une fonction de Fibonacci, et mon code ressemble à ceci:

val fibMemo : Map<Int, Int> = HashMap<Int,Int>()
fun fibN(n:Int) : Int {
    if (n == 0 || n == 1) return 1
    if (fibMemo.containsKey(n))
        //Error here: Type mismatch: inferred type is Int? but Int was expected
        return fibMemo.get(n)?.toInt()
    else {
        val newNum : Int = fibN(n-1) + fibN(n-2)
        fibMemo.put(n, newNum)
        return newNum
    }
}
  • Il y a de nouvelles réponses qui sont en cours de Kotlin.
  • Cette question est maintenant de répondre par la plus à jour et plus complet: stackoverflow.com/questions/34498562 Après que la question a accepté de répondre et de votes, ce qui devrait être fermée, comme un double de cette. Dans meta.stackexchange.com une méthode recommandée pour moderniser les questions et les réponses, c'est pour en créer un nouveau, puis fermez l'ancien tout en y ajoutant une référence à la nouvelle.
InformationsquelleAutor jjnguy | 2012-03-05