为什么在这种情况下不要给我一个不可为空的整数

Chr*_*ill -1 nullable kotlin

对Kotlin来说相当新 - 我有点困惑为什么在这个例子中使用let时'它'仍然可以为空?结果,该示例无法编译

错误:(9,20)类型不匹配:推断类型是Int?但Int是预料之中的

fun main(args: Array<String>) {
    val myNewNullableInt: Int? =6
    myNewNullableInt.let{
        printAnInteger(it)
    }

}

fun printAnInteger (integerToPrint: Int){
    println(integerToPrint)
}
Run Code Online (Sandbox Code Playgroud)

示例:https: //try.kotlinlang.org/#/UserProjects/fnlicstrn4tbmk8gs071vmv4ka/9dd72cr92ikggh3g9qg981h01o

tyn*_*ynn 5

let {}不会更改变量的类型.你想要做的是使它安全无效.这是通过?.访问完成的

myNewNullableInt?.let{
    printAnInteger(it)
}
Run Code Online (Sandbox Code Playgroud)