Как такое реализовать на Kotlin?
Не могу понять, еще изучаю, в интернете найти не могу, подскажите как правильно называть данное выражение и как его написать на kotlin
pixels[offset + x] = result.get(x, y) ? BLACK : WHITE;
Если что еще полный цикл приложу
int[] pixels = new int[width * height];
for (int y = 0; y < height; y++) {
int offset = y * width;
for (int x = 0; x < width; x++) {
pixels[offset + x] = result.get(x, y) ? BLACK : WHITE;
}
}
Буду очень благодарен, если подскажите еще, где можно подучить подобное)
Ответы (1 шт):
Автор решения: insolor
→ Ссылка
Если просто попробовать вставить ваш код в Intellij IDEA в kotlin файл, сразу будет предложено сконвертировать из Java в Kotlin (тестировалось на Intellij IDEA 2019.3 Community).
Результат такой:
val pixels = IntArray(width * height)
for (y in 0 until height) {
val offset: Int = y * width
for (x in 0 until width) {
pixels[offset + x] = if (result.get(x, y)) BLACK else WHITE
}
}
На мой взгляд, все сконвертировалось адекватно. Единственно, в строке
val offset: Int = y * width
указание типа не обязательно, можно записать просто как
val offset = y * width