#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) (префикс массива с *):
Комментариев нет:
Отправить комментарий