Literály

Tento článek obsahuje tabulku, která ukazuje, jak zadat typ literálu v jazyce F#.

Typy literálů

Následující tabulka uvádí typy literálů v jazyce F#. Znaky, které představují číslice v šestnáctkovém notaci, rozlišují malá a velká písmena. Znaky, které identifikují typ, rozlišují velká a malá písmena.

Typ Popis Přípona nebo předpona Příklady
sbyte 8bitové celé číslo se znaménkem y 86y

0b00000101y
byte 8bitové přirozené číslo bez znaménka Uy 86uy

0b00000101uy
int16 16bitové celé číslo se znaménkem s 86s
uint16 16bitové přirozené číslo bez znaménka Nás 86us
int

int32
32bitové celé číslo se znaménkem l nebo none 86

86l
uint

Uint32
unsigned (32bitové přirozené číslo) u or ul 86u

86ul
nativeint (nativní režim) nativní ukazatel na přirozené číslo se znaménkem n 123n
unativeint (neporativní) nativní ukazatel jako přirozené číslo bez znaménka Osn 0x00002D3Fun
int64 64bitové celé číslo se znaménkem L 86L
uint64 unsigned (64bitové přirozené číslo) UL 86UL
single, float32 32bitové číslo s plovoucí desetinnou čárkou F nebo f 4.14F nebo 4.14f
Lf 0x00000000lf
float; Dvojité 64bitové číslo s plovoucí desetinnou čárkou žádné 4.14 nebo 2.3E+32 nebo 2.3e+32
LF 0x0000000000000000LF
bigint Celé číslo není omezené na 64bitovou reprezentaci. I 9999999999999999999999999999I
decimal desetinné číslo reprezentované jako pevný bod nebo racionální číslo M nebo m 0.7833M nebo 0.7833m
Char znak Unicode žádné 'a' nebo '\u0061'
Řetězec Řetězec v kódování Unicode žádné "text\n"

nebo

@"c:\filename"

nebo

"""<book title="Paradise Lost">"""

nebo

"string1" + "string2"

Viz také Řetězce.
byte Znak ASCII B 'a'B
byte[] Řetězec ASCII B "text"B
Řetězec nebo byte[] doslovný řetězec @ předpona @"\\server\share" (Unicode)

@"\\server\share"B (ASCII)

Pojmenované literály

Hodnoty, které mají být konstantami, lze označit atributem Literal. Tento atribut má za následek, že hodnota bude kompilována jako konstanta.

Ve výrazech porovnávání vzorů jsou identifikátory, které začínají malými znaky, vždy považovány za proměnné, které mají být svázány, nikoli jako literály, takže byste při definování literálů měli obecně používat počáteční velká písmena.

[<Literal>]
let SomeJson = """{"numbers":[1,2,3,4,5]}"""

[<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

Poznámky

Řetězce Unicode mohou obsahovat explicitní kódování, která můžete zadat pomocí následovaného 16bitovým šestnáctkovým kódem (0000 – FFFF) nebo kódování UTF-32, která můžete zadat pomocí , za nímž následuje 32bitový šestnáctkový kód, který představuje libovolný bod kódu \u \U Unicode (00000000 – 0010FFFF).

Použití jiných bitové operátory než ||| není povoleno.

Celá čísla v jiných základech

32bitová celá čísla se znaménkem lze zadat také v šestnáctkovém, osmičkovém nebo binárním formátu pomocí 0x předpony nebo 0o 0b .

let numbers = (0x9F, 0o77, 0b1010)
// Result: numbers : int * int * int = (159, 63, 10)

Podtržítka v číselných literálech

Číslice můžete oddělit podtržítkem ( _ ).

let value = 0xDEAD_BEEF

let valueAsBits = 0b1101_1110_1010_1101_1011_1110_1110_1111

let exampleSSN = 123_456_7890