#kotlin
#kotlin
Вопрос:
fun main(args: Array<String>) {
var a: int = 12
var b: double = 1.23
println("a:$a")
println("b:$b")
}
это приводит к «неразрешенной ссылке: int» и «неразрешенной ссылке: float».
может кто-нибудь, пожалуйста, скажите мне, почему?
Комментарии:
1. Используйте заглавные буквы I и D. В Kotlin все примитивные типы данных определяются через их класс-оболочку.
2. Я потерял дар речи. Осознание собственной глупости почти повергло меня в чувство нирваны. Спасибо!
Ответ №1:
Я предполагаю, что вы исходите из Java, где int
и double
являются необработанными типами. В Kotlin эти типы используют версию с заглавной буквы: Int
и Double
соответственно. Причина этого заключается в том, что компилятор Kotlin определит во время компиляции, нужен ли вам необработанный тип или тип в штучной упаковке (объект, обертывающий необработанный тип, который также допускает возможность обнуления). Чтобы ваш код работал, вы бы просто написали:
fun main(args: Array<String>) {
var a: Int = 12
var b: Double = 1.23
println("a:$a")
println("b:$b")
}
Однако, как указал ПрафулД, в этом конкретном сценарии вам не нужно указывать типы при объявлении ваших переменных, потому что Kotlin выведет типы на основе предоставленных вами значений.
Ответ №2:
Вам не нужен тип данных set. Попробуйте приведенный ниже код,
fun main(args: Array<String>) {
var a = 12
var b = 1.23
println("a:$a")
println("b:$b")
}
Комментарии:
1. В этом случае вы правы, но я думаю, что объявление типа — это всегда хороший способ, например, когда у вас есть
val a = getA()