Harfiah
Artikel ini menyediakan tabel yang menunjukkan cara menentukan jenis harfiah dalam F#.
Jenis harfiah
Tabel berikut ini menunjukkan jenis harfiah dalam F#. Karakter yang mewakili digit dalam notasi heksadesimal tidak peka huruf besar/kecil; karakter yang mengidentifikasi jenisnya peka huruf besar/kecil.
Tipe | Deskripsi | Akhiran atau awalan | Contoh |
---|---|---|---|
sbyte | bilangan bulat 8-bit yang ditandatangani | y | 86y 0b00000101y |
byte | angka alami 8-bit yang tanpa tanda tangan | uy | 86uy 0b00000101uy |
int16 | bilangan bulat 16-bit yang ditandatangani | s | 86s |
uint16 | angka alami 16-bit tanpa tanda tangan | us | 86us |
int int32 |
bilangan bulat 32-bit yang ditandatangani | l atau none | 86 86l |
uint uint32 |
angka alami 32-bit tanpa tanda tangan | u atau ul | 86u 86ul |
nativeint | penunjuk asli ke angka alami yang ditandatangani | n | 123n |
unativeint | penunjuk asli sebagai angka alami tanpa tanda tangan | un | 0x00002D3Fun |
int64 | bilangan bulat 64-bit yang ditandatangani | L | 86L |
uint64 | angka alami 64-bit tanpa tanda tangan | UL | 86UL |
single, float32 | angka titik mengambang 32-bit | F atau f | 4.14F atau 4.14f atau atau infinityf -infinityf |
Lf | 0x00000000lf |
||
float; double | angka titik mengambang 64-bit | tidak ada | 4.14 atau 2.3E+32 atau atau 2.3e+32 atau infinity -infinity |
LF | 0x0000000000000000LF |
||
bigint | bilangan bulat tidak terbatas pada representasi 64-bit | I | 9999999999999999999999999999I |
desimal | angka pecahan yang dinyatakan sebagai titik tetap atau angka rasional | M atau m | 0.7833M atau 0.7833m |
Char | Karakter Unicode | tidak ada | 'a' atau '\u0061' |
String | String Unicode | tidak ada | "text\n" or @"c:\filename" or """<book title="Paradise Lost">""" or "string1" + "string2" Lihat juga String. |
byte | Karakter ASCII | B | 'a'B |
byte[] | String ASCII | B | "text"B |
String atau byte[] | string verbatim | @ prefiks | @"\\server\share" (Unicode)@"\\server\share"B (ASCII) |
Harfiah bernama
Nilai yang dimaksudkan untuk menjadi konstanta dapat ditandai dengan atribut Harfiah.
Atribut ini memiliki efek menyebabkan nilai dikompilasi sebagai konstanta. Dalam contoh berikut, baik x
dan y
di bawah ini adalah nilai yang tidak dapat diubah, tetapi x
dievaluasi pada run-time, sedangkan y
merupakan konstanta waktu kompilasi.
let x = "a" + "b" // evaluated at run-time
[<Literal>]
let y = "a" + "b" // evaluated at compile-time
Misalnya, perbedaan ini penting saat memanggil fungsi eksternal, karena DllImport
merupakan atribut yang perlu mengetahui nilai myDLL
selama kompilasi. [<Literal>]
Tanpa deklarasi, kode ini akan gagal dikompilasi:
[<Literal>]
let myDLL = "foo.dll"
[<DllImport(myDLL, CallingConvention = CallingConvention.Cdecl)>]
extern void HelloWorld()
Dalam ekspresi pencocokan pola, pengidentifikasi yang dimulai dengan karakter huruf kecil selalu diperlakukan sebagai variabel yang akan diikat, bukan sebagai harfiah, jadi Anda umumnya harus menggunakan awal kapital saat Anda menentukan harfiah.
[<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
Keterangan
Harfiah bernama berguna untuk:
- Pencocokan pola tanpa klausul
when
. - Argumen atribut.
- Argumen penyedia jenis statik.
String Unicode dapat berisi pengodean eksplisit yang dapat Anda tentukan dengan menggunakan \u
diikuti dengan kode heksadesimal 16-bit (0000 - FFFF), atau pengodean UTF-32 yang dapat Anda tentukan dengan menggunakan \U
diikuti oleh kode heksadesimal 32-bit yang mewakili titik kode Unicode apa pun (00000000 - 0010FFFF).
Penggunaan operator bitwise selain |||
tidak diizinkan.
Bilangan bulat di basis lain
Bilangan bulat 32-bit yang ditandatangani juga dapat ditentukan dalam heksadesimal, oktal, atau biner menggunakan awalan masing-masing 0x
, 0o
, atau 0b
.
let numbers = (0x9F, 0o77, 0b1010)
// Result: numbers : int * int * int = (159, 63, 10)
Garis bawah di dalam harfiah numerik
Anda dapat memisahkan digit dengan karakter garis bawah (_
).
let value = 0xDEAD_BEEF
let valueAsBits = 0b1101_1110_1010_1101_1011_1110_1110_1111
let exampleSSN = 123_45_6789
Nilai tak terbatas titik mengambang khusus
float
Jenis numerik titik mengambang dan single
memiliki nilai khusus terkait yang mewakili infinitas positif dan negatif.
Nilai F# | Jenis F# | Nilai .NET yang sesuai |
---|---|---|
infinity atau +infinity |
float |
PositiveInfinity |
-infinity |
float |
NegativeInfinity |
infinityf atau +infinityf |
single |
PositiveInfinity |
-infinityf |
single |
NegativeInfinity |
Nilai-nilai ini dapat digunakan secara langsung atau dikembalikan saat dibagi dengan nol floating-point atau angka yang terlalu kecil untuk diwakili oleh jenis yang diberikan. Contohnya:
> 1.0/0.0;;
val it: float = infinity
> 1.0/(-0.0);;
val it: float = -infinity
> 1.0/0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
;;
val it: float = infinity
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk