Использование ключевых слов в качестве идентификаторов в F#

В С# я могу сделать следующее:

int @private = 15;

А в VB.NET я могу сделать следующее:

Dim [Private] As Integer = 15

Мне интересно, есть ли в F# способ использовать зарезервированные ключевые слова в качестве идентификаторов, как в VB.NET и C#?


person Icemanind    schedule 10.07.2011    source источник
comment


Ответы (1)


Учитывая раздел 3.4 спецификации F# 2.0< /а>:

Идентификаторы соответствуют приведенной ниже спецификации. Любая последовательность символов, заключенная в двойные обратные кавычки (`` ``), за исключением новой строки, табуляции и самих пар двойных обратных кавычек, рассматривается как идентификатор.

Я подозреваю, что вы можете поместить это в обратные кавычки:

``private``

Хотя я не пробовал.

person Jon Skeet    schedule 10.07.2011
comment
Хорошая находка, Джон. Я попробовал это, выполнив let ``let`` = 75 и System.Console.WriteLine(``let``), и это сработало. Так знай, мы все знаем. Спасибо за помощь - person Icemanind; 10.07.2011
comment
Это работает, хотя синтаксически очень утомительно. Я рекомендую держать такие имена в тайне. - person ChaosPandion; 10.07.2011
comment
@ChaosPandion - я знаю. Я согласен. Я конвертирую библиотеку в F #, и в ней есть интерфейс с зарезервированным ключевым словом, и изменение имени интерфейса будет означать также изменение множества других классов, некоторые из которых у меня нет исходный код. Но если бы я мог избежать этого, я бы сделал это. Поверьте мне - person Icemanind; 10.07.2011
comment
Я обнаружил эту проблему, но она не работает с тегами (F# 4.0, моно): Tags Err FS1219 - person mamcx; 11.06.2015
comment
@mamcx: Боюсь, я не знаю, как разобрать этот комментарий, но, возможно, это то, что вам следует зарегистрировать как ошибку в F #? - person Jon Skeet; 11.06.2015
comment
Я имею в виду, что если использовать теги слов, обратные кавычки не работают, он получает FS1219. - person mamcx; 11.06.2015
comment
@mamcx: Ну, я пока не вижу спецификацию F # 4.0 - я бы обязательно сообщил об этом людям из F #. - person Jon Skeet; 11.06.2015