Задать вопрос
@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
  • Вопрос задан
  • 122 просмотра
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Android-разработчик
    12 месяцев
    Далее
  • AndroidSprint
    Backend на Kotlin: от корутин до продакшн сервиса
    4 месяца
    Далее
  • AndroidSprint
    Kotlin основы: ИИ-ментор 24/7 + персональный наставник
    2 месяца
    Далее
Решения вопроса 2
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 вполне могут
Ответ написан
Комментировать
На вопрос уже ответили, val это зарезервированное слово. Но если по какой-то причине хочется, чтобы переменная называлась именно так и никак иначе, можно обернуть название в обратные апострофы:
{ `val` -> `val` > 0}) }

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

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

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