Valori letterali (F#)
In questo argomento viene fornita una tabella in cui viene illustrato come specificare il tipo di un valore letterale in F#.
Tipi letterali
Nella tabella seguente sono illustrati i tipi letterali di F#. Per i caratteri che rappresentano cifre in notazione esadecimale non viene fatta distinzione tra maiuscole e minuscole, mentre per i caratteri che identificano il tipo sì.
Type |
Descrizione |
Suffisso o prefisso |
Esempi |
---|---|---|---|
sbyte |
Signed Integer a 8 bit |
y |
86y 0b00000101y |
byte |
Numero naturale senza segno a 8 bit |
uy |
86uy 0b00000101uy |
int16 |
Signed Integer a 16 bit |
s |
86s |
uint16 |
Numero naturale senza segno a 16 bit |
us |
86us |
int int32 |
Signed Integer a 32 bit |
l o nessuno |
86 86l |
uint uint32 |
Numero naturale senza segno a 32 bit |
u o ul |
86u 86ul |
unativeint |
Puntatore nativo come numero naturale senza segno |
un |
0x00002D3Fun |
int64 |
Signed Integer a 64 bit |
L |
86L |
uint64 |
Numero naturale senza segno a 64 bit |
UL |
86UL |
single, float32 |
Numero a virgola mobile a 32 bit |
F o f |
4.14F o 4.14f |
lf |
0x00000000lf |
||
float; double |
Numero a virgola mobile a 64 bit |
nessuno |
4.14 o 2.3E+32 o 2.3e+32 |
LF |
0x0000000000000000LF |
||
bigint |
Integer non limitato alla rappresentazione a 64 bit |
I |
9999999999999999999999999999I |
decimal |
Numero frazionario rappresentato come numero a virgola fissa o numero razionale |
M o m |
0.7833M o 0.7833m |
Char |
Carattere Unicode |
nessuno |
'a' |
String |
Stringa Unicode |
nessuno |
"text\n" oppure @"c:\filename" oppure """<book title="Paradise Lost">""" oppure "string1" + "string2" Vedere anche Stringhe (F#). |
byte |
Carattere ASCII |
B |
'a'B |
byte[] |
Stringa ASCII |
B |
"text"B |
String o byte [] |
Stringa letterale |
Prefisso @ |
@"\\server\share" (Unicode) @"\\server\share"B (ASCII) |
Note
Le stringhe Unicode possono contenere codifiche esplicite che è possibile specificare utilizzando \u seguito da un codice esadecimale a 16 bit o codifiche UTF-32 che è possibile specificare utilizzando \U seguito da un codice esadecimale a 32 bit che rappresenta una coppia di surrogati Unicode.
A partire da F# 3.1, è possibile utilizzare il segno + per combinare i valori letterali stringa. È inoltre possibile utilizzare l'operatore bit per bit o (|||) per combinare i flag dell'enumerazione. Ad esempio, il codice riportato di seguito è valido in F# 3.1:
[<Literal>]
let literal1 = "a" + "b"
[<Literal>]
let fileLocation = __SOURCE_DIRECTORY__ + "/" + __SOURCE_FILE__
[<Literal>]
let literal2 = 1 ||| 64
[<Literal>]
let literal3 = System.IO.FileAccess.Read ||| System.IO.FileAccess.Write
L'utilizzo di altri operatori bit per bit non è consentito.
Letterali denominati
I valori che devono essere costanti possono essere contrassegnati con l'attributo Literal. Questo attributo determina la compilazione di un valore come costante.
In un'espressione di corrispondenza dei modelli, gli identificatori che iniziano con i caratteri minuscoli vengono sempre trattati come variabili da associare, anziché come valori letterali, pertanto è necessario utilizzare in genere lettere maiuscole iniziali quando si assegnano valori letterali.