Я играл с kotlin функциями, особенно выводом типов данных в массиве. Все примеры, которые я видел, были такими:
val wordArray = arrayOf("empowered", "leveraged", "aligned", "targeted")
val intArray = arrayOf(1, 2, 3, 4)
Но также возможно что-то вроде:
val myObjectArray = arrayOf(2, "Dos", 2.2F)
Итак, вы можете разделить массив элементов, где каждый элемент имеет другой тип. Вы можете работать с этими элементами:
val newPhrase = "myObjectArray[0] = ${myObjectArray[0]}, " +
"myObjectArray[1] = ${myObjectArray[1]}, " +
"myObjectArray[2] = ${myObjectArray[2]}"
println(newPhrase)
for(item in myObjectArray){
println(item.javaClass.toString())
}
, которые выдают в консоли вывода:
myObjectArray[0] = 2, myObjectArray[1] = Dos, myObjectArray[2] = 2.2
class java.lang.Integer
class java.lang.String
class java.lang.Float
Я также проверил некоторые глупости, такие как:
myObjectArray[0] = 4.4 // It doesn't compile
myObjectArray[1] = 'c' // It doesn't compile
myObjectArray[1] = 4 // It compiles
myObjectArray[1] = 4.4 // It doesn't compile
myObjectArray[2] = 4 // It compiles
myObjectArray[2] = "cadena" // It compiles
myObjectArray[2] = 4L // It doesn't compile
И вывод скомпилированных строк:
myObjectArray[0] = 2, myObjectArray[1] = 4, myObjectArray[2] = cadena
class java.lang.Integer
class java.lang.Integer
class java.lang.String
Если вы хотите ограничить конкретным типом данных, скажем, байтами, он должен быть объявлен как:
var byteArray1 = byteArrayOf(1,2,3)
var byteArray2:Array<Byte> = arrayOf(1,2,3)
Идет Кстати, мои вопросы:
- Почему можно объявить массив с различными типами элементов?
- Что такое преимущество?
- Если есть какие-либо преимущества, почему это не объясняется? Я читаю ссылки, такие как kotlin документация, First Head Kotlin и некоторые Kotlin блоги. Никто из них не упоминает об этой опции кода.
Я ценю ваши разъяснения. Заранее спасибо.
РЕДАКТИРОВАТЬ:
Как говорит @ Tenfour04 , компилятор компилирует код. Так что проблема в IntelliSense IntelliJ IDEA:
Итак, можно создать массив с любым типом объекта и установить его положение с любым другим объектом.