#java #kotlin
Здравствуйте. Перевел код с java на kotlin со помощью автоматического конвертера.
Появилась конструкция, которую я не могу понять. Что означает звездочка при создании
объекта (return Sort(*orders)) ? Мне нужно хотя бы название этой конструкции для дальнейшего
гугления.
class Sort (vararg orders: SortOrder) {
var orders: List = ArrayList()
companion object {
fun sort(vararg orders: SortOrder): Sort {
return Sort(*orders)
}
}
init {
this.orders = Arrays.asList(*orders)
}
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (other == null || javaClass != other.javaClass) return false
val sort = other as Sort?
return orders == sort!!.orders
}
Ответы
Ответ 1
Согласно документации +, -, *, /, % - mathematical operators * is also used to pass an array to a vararg parameter (также используется для передачи массива параметру vararg) Также When we call a vararg-function, we can pass arguments one-by-one, e.g. asList(1, 2, 3), or, if we already have an array and want to pass its contents to the function, we use the spread operator (prefix the array with *): val a = arrayOf(1, 2, 3) val list = asList(-1, 0, *a, 4) Перевод Когда мы вызываем vararg-функцию, мы можем передавать аргументы один за другим, например, asList (1, 2, 3), или, если у нас уже есть массив и мы хотим передать его содержимое функции, мы используем оператор распространения (spread) (префикс массива с *):
Комментариев нет:
Отправить комментарий