2011-07-10 15 views
24

En C#, que pueden hacer lo siguiente:Uso de palabras claves como identificadores en F #

int @private = 15; 

Y en VB.NET, que puede hacer lo siguiente:

Dim [Private] As Integer = 15 

Me pregunto si hay una forma en F # para usar palabras clave reservadas como identificadores, como en VB.NET y C#?

+1

posible duplicado de [F #: Interfaz de implementación con nombre de función igual a la palabra clave begin] (http://stackoverflow.com/questions/3864034/f-implementing-interface-with-function-name-the-same- as-the-keyword-begin) – Brian

Respuesta

25

Dado section 3.4 of the F# 2.0 spec:

Identificadores siguen la especificación de abajo. Cualquier secuencia de caracteres que esté encerrada en marcas de doble retroceso (`` ``), excluyendo nuevas líneas, pestañas y pares de doble retroceso, se trata como un identificador.

I sospechoso se puede poner entre comillas sencillas:

``private`` 

Yo no lo he probado sin embargo.

+0

Buen hallazgo Jon. Lo probé haciendo 'let \' \ 'let \' \ '= 75' y' System.Console.WriteLine (\ '\' let \ '\') 'funcionó. Así que sé que todos lo sabemos. Gracias por la ayuda – Icemanind

+1

Esto funciona aunque es sintácticamente muy tedioso. Recomiendo mantener esos nombres privados. – ChaosPandion

+3

@ ChaosPandion - Lo sé. Estoy de acuerdo. Estoy convirtiendo una biblioteca en F # y tiene una interfaz con una palabra clave reservada y cambiar el nombre de la interfaz significaría cambiar muchas otras clases también, algunas de las cuales, no tengo el código fuente. Pero si pudiera evitarlo, lo haría. Confía en mí – Icemanind

Cuestiones relacionadas