Kotlin 类型推断适用于以下场景:
- 局部变量:当你在函数或代码块中定义一个局部变量时,Kotlin 可以根据其初始值自动推断变量的类型。例如:
val number = 42 // Kotlin 推断 number 为 Int 类型 val name = "Alice" // Kotlin 推断 name 为 String 类型
- 函数参数:在调用函数时,Kotlin 可以根据传递的参数自动推断函数参数的类型。例如:
fun printName(name: String) {
println("Hello, $name!")
}
printName("Bob") // Kotlin 推断参数 name 为 String 类型
- 函数返回值:Kotlin 可以根据函数的实现自动推断其返回值的类型。例如:
fun getLength(str: String): Int {
return str.length
}
val length = getLength("Kotlin") // Kotlin 推断 getLength 函数的返回值为 Int 类型
- 属性类型:在定义属性时,Kotlin 可以根据初始化器的值自动推断属性的类型。例如:
val number: Int = 42 val name: String = "Alice"
- 泛型类型参数:在使用泛型类或函数时,Kotlin 可以根据传递的参数类型自动推断泛型类型参数。例如:
fun printList(list: List) {
for (item in list) {
println(item)
}
}
val intList = listOf(1, 2, 3)
printList(intList) // Kotlin 推断泛型类型参数 T 为 Int 类型
val stringList = listOf("Hello", "Kotlin")
printList(stringList) // Kotlin 推断泛型类型参数 T 为 String 类型
总之,Kotlin 类型推断可以帮助你编写更简洁、易读的代码,减少冗余的类型声明。在大多数情况下,Kotlin 编译器都能准确地推断出正确的类型。