Literały (F#)
Ten temat zawiera tabelę, która pokazuje sposób określania rodzaju literału w F#.
Typy literałów
Poniższa tabela przedstawia typy literałów w F#.Znaki, które reprezentują cyfr w formacie szesnastkowym, nie są rozróżniane pod względem wielkości; dla znaków, które identyfikują typ, jest rozróżniana wielkość liter.
Typ |
Opis |
Prefiks lub sufiks |
Przykłady |
---|---|---|---|
sbyte |
oznaczona 8-bitowa liczba całkowita |
y |
86y 0b00000101y |
byte |
nieoznaczona 8-bitowa liczba naturalna |
uy |
86uy 0b00000101uy |
int16 |
oznaczona 16-bitowa liczba całkowita |
s |
86s |
uint16 |
nieoznaczona 16-bitowa liczba naturalna |
us |
86us |
int int32 |
oznaczona 32-bitowa liczba całkowita |
l lub brak |
86 86l |
uint uint32 |
nieoznaczona 32-bitowa liczba naturalna |
u lub ul |
86u 86ul |
unativeint |
wskaźnik natywny jako liczba naturalna bez znaku |
un |
0x00002D3Fun |
int64 |
oznaczona 64-bitowa liczba całkowita |
L |
86L |
uint64 |
nieoznaczona 64-bitowa liczba naturalna |
UL |
86UL |
pojedynczy, float32 |
Liczba zmiennoprzecinkowa 32-bitowa |
F lub f |
4.14F lub 4.14f |
Jeśli |
0x00000000lf |
||
float; double |
Liczba zmiennoprzecinkowa 64-bitowa |
brak |
4.14 lub 2.3E+32, lub 2.3e+32 |
LF |
0x0000000000000000LF |
||
bigint |
liczba całkowita nie ogranicza się do reprezentacja 64-bitowej |
I |
9999999999999999999999999999I |
decimal |
liczba ułamkowa reprezentowana jako stały punktu lub liczba wymierna |
M lub m |
0.7833M lub 0.7833m |
Char |
Znak Unicode |
brak |
'a' |
Ciąg |
Ciąg Unicode |
brak |
"text\n" lub @"c:\filename" lub """<book title="Paradise Lost">""" lub "string1" + "string2" Zobacz też Ciągi (F#). |
byte |
znak ASCII |
B |
'a'B |
bajt[] |
Ciąg ASCII |
B |
"text"B |
Ciąg lub bajt[] |
Ciąg verbatim |
prefiks @ |
@"\\server\share" (Unicode) @"\\server\share"B (ASCII) |
Uwagi
Ciągi Unicode mogą zawierać jawne kodowania, które można określić przy użyciu \u z 16-bitowym kodem szesnastkowym lub kodowania UTF-32, które można określić przy użyciu \U z 32-bitowym kodem szesnastkowym, reprezentującym parę zastępczą Unicode.
Jak dla F# 3.1 możliwe jest użycie znaku +, aby połączyć literały ciągów znaków.Możesz również użyć operatora bitowego lub (|||), aby łączyć flagi wyliczeń.Na przykład następujący kod jest niedozwolony w języku 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
Nie jest dozwolone używanie innych operatorów bitowych.
Nazwane literały
Wartości, które mają być stałymi mogą być oznaczone atrybutem Literał.Atrybut jest w stanie sprawić, że wartość zostanie skompilowana jako stała.
W wyrażeniach dopasowania do wzorca identyfikatory, które zaczyna się od małej litery, są zawsze traktowane jako zmienne do powiązania, a nie jako literały, więc należy generalnie używać początkowych wielkich liter podczas definiowania literałów.