Задать вопрос
@Boris009

Почему в лямба функции нельзя называть аргументы любым названием?

Почему, если вместо val подставить х, то всё работает
А если оставить так, то вылетает ошибка, в чём смысл ограничения по названиям аргумента?

val numbers = listOf(-1, 5, 0, -2, 4, 3, 7, 8)
val positives = numbers.filter({ val -> val > 0})


Kotlin: Expecting property name or receiver type
  • Вопрос задан
  • 94 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
axifive
@axifive
Software Engineer
val зарезервированное слово, которое не может выступать как идентификатор. (Находится в секции Hard keywords)

The following tokens are always interpreted as keywords and cannot be used as identifiers:


Но другие из секций Soft keywords и Modifier keywords вполне могут
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
На вопрос уже ответили, val это зарезервированное слово. Но если по какой-то причине хочется, чтобы переменная называлась именно так и никак иначе, можно обернуть название в обратные апострофы:
{ `val` -> `val` > 0}) }

Тогда компилятор примет такое название.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы