Как избежать идентификаторов в Boo?
Вопрос
Если у меня есть идентификатор с тем же именем, что и у существующего ключевого слова, как мне его избежать?
Решение
Вот что я нашел (и это, наверное, окончательный ответ):
- Можно использовать
@
в качестве префикса в именах идентификаторов.Однако по умолчанию он создает другой идентификатор (@a != a
). - С
@
разрешено, в конвейер можно добавить новый шаг компилятора, который будет выполнятьTrimStart('@')
по всем идентификаторам.Это работает нормально, вам просто нужно запомнить все типы вещей, у которых есть имена. - Если вы используете Rhino.DSL, в нем есть шаг UseSymbols, который преобразует @a в «a», что меня сильно смутило (я работал с проектом, который включал этот шаг по умолчанию).
Другие советы
Я не думаю ничего подобного Префикс С# @ реализовано в Boo...но я почти уверен, что этого можно добиться, вставив собственный шаг компилятора в начало конвейера компилятора.
Не связан с StackOverflow