Değişmez Değerler
Bu makalede, F# dilinde değişmez değer türünün nasıl belirtileceğini gösteren bir tablo sağlanır.
Değişmez değer türleri
Aşağıdaki tabloda F# dilindeki değişmez değer türleri gösterilmektedir. Onaltılık gösteriminde basamakları temsil eden karakterler büyük/küçük harfe duyarlı değildir; türü tanımlayan karakterler büyük/küçük harfe duyarlıdır.
Type | Açıklama | Son ek veya ön ek | Örnekler |
---|---|---|---|
sbyte | imzalı 8 bit tamsayı | y | 86y 0b00000101y |
byte | işaretsiz 8 bit doğal sayı | Uslu | 86uy 0b00000101uy |
int16 | imzalı 16 bit tamsayı | s | 86s |
uint16 | işaretsiz 16 bit doğal sayı | us | 86us |
int int32 |
imzalı 32 bit tamsayı | l veya hiçbiri | 86 86l |
uint uint32 |
işaretsiz 32 bit doğal sayı | u veya ul | 86u 86ul |
Nativeint | imzalı bir doğal sayıya yerel işaretçi | n | 123n |
Unativeint | işaretsiz doğal sayı olarak yerel işaretçi | un | 0x00002D3Fun |
int64 | imzalı 64 bit tamsayı | L | 86L |
uint64 | işaretsiz 64 bit doğal sayı | UL | 86UL |
tek, float32 | 32 bit kayan nokta numarası | F veya f | 4.14F veya 4.14f |
Eğer | 0x00000000lf |
||
Float; Çift | 64 bit kayan nokta numarası | yok | 4.14 veya veya 2.3E+32 2.3e+32 |
LF | 0x0000000000000000LF |
||
bigint | 64 bit gösterimle sınırlı olmayan tamsayı | I | 9999999999999999999999999999I |
ondalık | sabit nokta veya rasyonel sayı olarak temsil edilen kesirli sayı | M veya m | 0.7833M veya 0.7833m |
Char | Unicode karakter | yok | 'a' veya '\u0061' |
String | Unicode dizesi | yok | "text\n" veya @"c:\filename" veya """<book title="Paradise Lost">""" veya "string1" + "string2" Ayrıca bkz. Dizeler. |
byte | ASCII karakteri | K | 'a'B |
bayt[] | ASCII dizesi | K | "text"B |
Dize veya bayt[] | düz metin dizesi | @ ön eki | @"\\server\share" (Unicode)@"\\server\share"B (ASCII) |
Adlandırılmış değişmez değerler
Sabit olması amaçlanan değerler Değişmez Değer özniteliğiyle işaretlenebilir.
Bu öznitelik, bir değerin sabit olarak derlenmiş olmasına neden olma etkisine sahiptir. Aşağıdaki örnekte, hem hem de x
y
aşağıda sabit değerler vardır, ancak x
çalışma zamanında değerlendirilirken y
, derleme zamanı sabitidir.
let x = "a" + "b" // evaluated at run-time
[<Literal>]
let y = "a" + "b" // evaluated at compile-time
Örneğin, derleme sırasında değerini myDLL
bilmesi gereken bir öznitelik olduğundanDllImport
, bu ayrım bir dış işlevi çağırırken önemlidir. [<Literal>]
Bildirim olmadan bu kod derlenemiyor:
[<Literal>]
let myDLL = "foo.dll"
[<DllImport(myDLL, CallingConvention = CallingConvention.Cdecl)>]
extern void HelloWorld()
Desen eşleştirme ifadelerinde, küçük harfle başlayan tanımlayıcılar her zaman değişmez değer yerine bağlanacak değişkenler olarak kabul edilir, bu nedenle değişmez değerleri tanımlarken genellikle ilk büyük harfleri kullanmanız gerekir.
[<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
Açıklamalar
Adlandırılmış değişmez değerler şunlar için kullanışlıdır:
- Yan tümcesi
when
olmadan desen eşleştirme. - Öznitelik bağımsız değişkenleri.
- Statik tür sağlayıcısı bağımsız değişkenleri.
Unicode dizeleri, 16 bit onaltılık kod (0000 - FFFF) veya UTF-32 kodlamaları kullanarak belirtebileceğiniz ve ardından herhangi bir Unicode kod noktasını temsil eden 32 bit onaltılık kod (00000000 - 0010FFFF) kullanarak \u
\U
belirtebileceğiniz açık kodlamalar içerebilir.
dışındaki |||
bit düzeyinde işleçlerin kullanılmasına izin verilmez.
Diğer tabanlardaki tamsayılar
İmzalı 32 bit tamsayılar sırasıyla bir 0x
veya 0o
ön ek kullanılarak onaltılık, sekizli veya 0b
ikili olarak da belirtilebilir.
let numbers = (0x9F, 0o77, 0b1010)
// Result: numbers : int * int * int = (159, 63, 10)
Sayısal değişmez değerlerde alt çizgi
Basamakları alt çizgi karakteriyle (_
) ayırabilirsiniz.
let value = 0xDEAD_BEEF
let valueAsBits = 0b1101_1110_1010_1101_1011_1110_1110_1111
let exampleSSN = 123_45_6789
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin