Просто удалите скобки из значений extX
лямбда-параметров, т.е.:
val pathXRanges = listOf<(Int) -> List<Int>>(
{ extX -> ((extX - (board.k - 1))..(extX + board.k - 1)).toList() }, // diagonal 1 (y = -x)
{ extX -> ((extX - (board.k - 1))..(extX + board.k - 1)).toList() }, // diagonal 2 (y = x)
{ extX -> List(board.k * 2 - 2) { extX } }, // x = x
{ extX -> ((extX - (board.k - 1))..(extX + board.k - 1)).toList() } // y = y
)
Скобки указывают компилятору, что лямбда-параметр должен быть неструктурированным , а параметр component1()
оператор функции должен быть вызван для присвоения значения extX
.
Конечно, Int
не имеет функции component1()
, следовательно, ошибка:
Destructuring declaration initializer of type Int must have a 'component1()' function`.