Derleyici yönergeleri (F#)
Bu konuda, işlemci yönergeleri ve derleyici yönergeleri açıklanır.
Önişlemci yönergeleri
Önişlemci yönergesi sembolüyle öneki ve kendi başına bir satırda görünür. Derleyici önce çalışan Önişlemci yorumlanır.
F# kullanılabilir Önişlemci yönergeleri aşağıdaki tabloda listelenmektedir.
Yönergesi |
Description |
---|---|
#ifSembol |
Koşullu derleme destekler. Sonra kısımdaki koda #if , gelir sembol tanımlanır. |
#else |
Koşullu derleme destekler. Sembol önceki kullanılırsa dahil etmek için kod bölümü işaretler #if tanımlı değil. |
#endif |
Koşullu derleme destekler. Koşullu kod bölümünün sonunu işaretler. |
#[LINE] int, #[line] intstring, #[line]intverbatim-string |
Hata ayıklama için özgün kaynak kod satırı ve dosya adı gösterir. Bu özellik, F# kaynak kodunu üretmek için Araçlar sağlanır. |
Koşullu derleme yönergeleri
Bu yönergeleri birini devre dışı kod içinde soluk görünür Visual Studio Kod Düzenleyicisi.
Not
Diğer dillerde olduğu gibi koşullu derleme yönergeleri davranışını aynı değildir.Örneğin, semboller, kişiyle ilgili Boolean deyimleri kullanamazsınız ve true ve false özel bir anlamı vardır.İçinde kullandığınız sembolleri #if yönergesi tanımlanmalı, komut satırı veya proje ayarları; yok yok #define Önişlemci yönergesi.
Aşağıdaki kodu kullanımını göstermektedir #if, #else, ve #endif yönergeleri. Bu örnekte, kodu tanımı iki sürümü bulunur function1. Zaman VERSION1 kullanılarak tanımlanmış -derleyici seçeneği tanımlamak, kod arasında #if yönergesi ve #else yönergesi etkinleştirilmiş. Aksi durumda, kodu arasında #else ve #endif etkinleştirilir.
#if VERSION1
let function1 x y =
printfn "x: %d y: %d" x y
x + 2 * y
#else
let function1 x y =
printfn "x: %d y: %d" x y
x - 2*y
#endif
let result = function1 10 20
Yok yok #define F# Önişlemci yönergesi. Tarafından kullanılan simgeler tanımlamak için derleyici seçeneği veya proje ayarları kullanmak #if yönergesi.
Koşullu derleme yönergeleri iç içe olabilir. Girinti Önişlemci yönergeleri için önemli değil.
Satırı yönergeleri
Oluştururken, derleyici her hatanın oluştuğu satır numaralarını başvurarak F# kod hatalarını bildirir. Bu satır numaralarını dosyasındaki ilk satır 1'deki başlatın. F# kaynak kodu başka bir aracı oluştururken, oluşturulan F# kod hatalarını büyük olasılıkla başka bir kaynaktan çıkan çünkü ancak oluşturulan kodu satır numaralarını genellikle ilgi çeken değildir. #line Yönergesinin özgün satırı hakkındaki bilgileri üretilen F# kodu numaraları ve kaynak dosyaları geçirmek için F# kaynak kodu üreten araçlar yazarlar için bir yol sağlar.
Kullandığınızda #line yönergesi içeriyorsa, dosya adlarını tırnak içine alınmalıdır. Sürece harfi harfine belirteci (@), gereken çıkış ters eğik çizgi karakterleri iki ters eğik çizgi karakteri yerine bunları yolda kullanmak için kullanarak dize önünde görüntülenir. Geçerli satırı belirteçleri şunlardır. Bu örneklerde, istediğinizi düşünelim özgün dosyayı Script1 bir otomatik olarak oluşturulan F# kod dosyasında bir aracı aracılığıyla çalıştırın ve bu yönergeleri konumunda kod satırında 25 dosyasındaki bazı belirteçleri oluşturulur neden Script1.
# 25
#line 25
#line 25 "C:\\Projects\\MyProject\\MyProject\\Script1"
#line 25 @"C:\Projects\MyProject\MyProject\Script1"
# 25 \@\"C:\Projects\MyProject\MyProject\Script1\"
Bu konumda oluşturulan F# kodunu veya satır'e yakın bazı yapıları türetilir, bu simgeleri göstermek 25 , Script1.
Derleyici yönergeleri
Derleyici yönergeleri Önişlemci emirler ile # işaretini öneki alır, ancak Önişlemci yorumlanmasını yerine, bunlar için yorumlamak ve üzerinde çalışmak derleyici bırakılır çünkü benzer.
F# kullanılabilir derleyici yönergesini aşağıdaki tabloda listelenmektedir.
Yönergesi |
Description |
---|---|
#light["açık" | "Kapalı"] |
Etkinleştirir veya ML'ın diğer sürümleri ile uyumluluk için basit sözdizimi devre dışı bırakır. Varsayılan olarak, basit sözdizimi etkinleştirilir. Ayrıntılı sözdizimi her zaman etkindir. Bu nedenle, hem basit sözdizimi hem de ayrıntılı sözdizimi kullanabilirsiniz. Yönergesi #light kendine eşdeğeri olan #light "on". Belirtirseniz, #light "off", tüm dil yapıları için ayrıntılı sözdizimi kullanmalıdır. F# belgelerindeki sözdizimi basit sözdizimi kullanarak varsayımı ile sunulur. Daha fazla bilgi için bkz. Ayrıntılı sözdizimi (F#). |
Yorumlayıcı (fsi.exe) yönergeleri için bkz: F# Etkileşimli (fsi.exe) Başvurusu.