14 ответов:
вы можете:
val numbers: IntArray = intArrayOf(10, 20, 30, 40, 50)посмотреть Котлин - Основные Типы для сведения.
вот пример:
fun main(args: Array<String>) { val arr = arrayOf(1, 2, 3); for (item in arr) { println(item); } }вы также можете использовать детская площадка для тестирования языковых функций.
стоит отметить, что при использовании Kotlin builtines (например,
intArrayOf(),longArrayOf(),arrayOf()и т. д.) Вы не можете инициализировать массив со значениями по умолчанию (или все значения до нужного значения) для заданного размера, вместо этого вам нужно выполнить инициализацию с помощью вызова соответствующего конструктора класса.// Array of integers of a size of N val arr = IntArray(N) // Array of integers of a size of N initialized with a default value of 2 val arr = IntArray(N) { i -> 2 }
в Котлине есть несколько способов.
var arr = IntArray(size) // construct with only sizeтогда просто начальное значение от пользователей или из другой коллекции или где вы хотите.
var arr = IntArray(size, { 0 } ) // construct with size and fill array with 0 var arr = IntArray(size, { it * 1 } ) // construct with size and fill with its indexмы также можем создать массив со встроенной функцией как-
var arr = intArrayOf(1, 2, 3, 4, 5) // create an array with 5 valuesдругой способ
var arr = Array(size, { 0 } ) // it will create an integer array var arr = Array<String>(size, { "$it" } ) // this will create array with "0", "1", "2" and so on.вы также можете использовать
doubleArrayOf()илиDoubleArray()или любой примитивный тип вместо Int.
в Котлине мы можем создать массив с помощью
arrayOf(),intArrayOf(),charArrayOf(),booleanArrayOf(),longArrayOf()функции.например:
var Arr1 = arrayOf(1,10,4,6,15) var Arr2 = arrayOf<Int>(1,10,4,6,15) var Arr3 = arrayOf<String>("Surat","Mumbai","Rajkot") var Arr4 = arrayOf(1,10,4, "Ajay","Prakesh") var Arr5: IntArray = intArrayOf(5,10,15,20)
старый вопрос, но если вы хотите использовать диапазон:
var numbers: IntArray = IntRange(10, 50).step(10).toList().toIntArray()дает почти тот же результат, что и:
var numbers = Array(5, { i -> i*10 + 10 })результат: 10, 20, 30, 40, 50
Я думаю, что первый вариант немного более читабельным. Обе работы.
вы можете использовать эти методы
var numbers=Array<Int>(size,init) var numbers=IntArray(size,init) var numbers= intArrayOf(1,2,3)пример
var numbers = Array<Int>(5, { i -> 0 })init представляет значение по умолчанию (инициализировать )
Я думаю, что одна вещь, о которой стоит упомянуть и которая недостаточно интуитивно понятна из документации, заключается в том, что при использовании заводской функции для создания массива и указании его размера массив инициализируется значениями, равными их индексным значениям. Например, в массиве, таком как этот:
val array = Array(5, { i -> i }), начальные значения присваиваются[0,1,2,3,4]и не говорите,[0,0,0,0,0]. Вот почему из документации,val asc = Array(5, { i -> (i * i).toString() })выдает ответ["0", "1", "4", "9", "16"]
Вы можете создать массив Int следующим образом:
val numbers = IntArray(5, { 10 * (it + 1) })5-это размер массива Int. лямбда-функция-это функция инициализации элемента. "это" диапазон в [0,4], плюс 1 сделать диапазон в [1,5]
функция происхождения:
/** * An array of ints. When targeting the JVM, instances of this class are * represented as `int[]`. * @constructor Creates a new array of the specified [size], with all elements * initialized to zero. */ public class IntArray(size: Int) { /** * Creates a new array of the specified [size], where each element is * calculated by calling the specified * [init] function. The [init] function returns an array element given * its index. */ public inline constructor(size: Int, init: (Int) -> Int) ... }класс IntArray, определенный в массивах.КТ
в моем случае мне нужно инициализировать мой товар ящика. Я заполняю данные ниже кода.
val iconsArr : IntArray = resources.getIntArray(R.array.navigation_drawer_items_icon) val names : Array<String> = resources.getStringArray(R.array.navigation_drawer_items_name) // Use lambda function to add data in my custom model class i.e. DrawerItem val drawerItems = Array<DrawerItem>(iconsArr.size, init = { index -> DrawerItem(iconsArr[index], names[index])}) Log.d(LOGGER_TAG, "Number of items in drawer is: "+ drawerItems.size)пользовательский класс модели-
class DrawerItem(var icon: Int, var name: String) { }
вы можете просто использовать существующую стандартную библиотеку методы как показано ниже:
val numbers = intArrayOf(10, 20, 30, 40, 50)возможно, имеет смысл использовать специальный конструктор, хотя:
val numbers2 = IntArray(5) { (it + 1) * 10 }вы передаете размер и лямбда, который описывает, как инициализировать значения. Вот документация:
/** * Creates a new array of the specified [size], where each element is calculated by calling the specified * [init] function. The [init] function returns an array element given its index. */ public inline constructor(size: Int, init: (Int) -> Int)
объявить массив int в global
var numbers= intArrayOf()следующий метод onCreate инициализирует Ваш массив со значением
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) //create your int array here numbers= intArrayOf(10,20,30,40,50) }
Comments