Sdílet prostřednictvím


Direktivy kompilátoru (F#)

Toto téma popisuje procesoru směrnic a direktivy kompilátoru.

Direktivy preprocesoru

Direktiva preprocesoru předponou je symbolem # a zobrazí se na řádku samostatně.Je interpretována preprocesoru, které se spouští před samotnou kompilátor.

Následující tabulka uvádí direktivy preprocesoru, které jsou k dispozici v F#.

Směrnice

Description

#ifsymbol

Podporuje podmíněné kompilace.Kód v části po #if je zahrnuta, pokud symbol je definován.

#else

Podporuje podmíněné kompilace.Označí části kódu zahrnout, pokud symbol s předchozím #if není definována.

#endif

Podporuje podmíněné kompilace.Označuje konec podmíněné části kódu.

#[řádek] int, #[line] intstring, #[line]intverbatim-string

Označuje původní zdrojový kód řádku a název souboru, pro ladění.Tato funkce je k dispozici pro nástroje, které generují F# zdrojový kód.

Podmíněné kompilace směrnic

Kód, který je deaktivován podle jedné z těchto směrnic v šedé Visual Studio Editor kódu.

[!POZNÁMKA]

Chování podmíněné kompilace směrnic není stejné jako v jiných jazycích.Nelze například použít logické výrazy zahrnující symboly a true a false mají zvláštní význam.Symboly, které můžete použít v #if směrnice musí být definovány pomocí příkazového řádku nebo v nastavení projektu; neexistuje žádný #define direktivu preprocesoru.

Následující kód ilustruje použití #if, #else, a #endif směrnic.V tomto příkladu kódu obsahuje dvě verze definice function1.Při VERSION1 je definován pomocí -definovat volba kompilátoru, kód mezi #if směrnice a #else směrnice je aktivován.Jinak kód mezi #else a #endif je aktivován.

#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

Neexistuje žádný #define direktivu preprocesoru F#.Pomocí nastavení kompilátoru možnost nebo projekt musí definovat symboly používané #if směrnice.

Podmíněné kompilace směrnic mohou být vnořené.Odsazení je významné pro direktivy předprocesoru.

Řádek směrnic

Při vytváření, kompilátor ohlásí chyby v kódu F# odkazem na čísla řádků, kdy dojde k chybě, každý.Tato čísla začínají na 1 pro první řádek v souboru.Pokud generujete F# zdrojový kód z jiného nástroje, čísla řádků do generovaného kódu jsou však obecně není zájmu, protože chyby generované F# kód pravděpodobně vzniknou z jiného zdroje.#line Směrnice umožňuje autorům nástroje, které generují F# zdrojový kód generovaný kód F# předávat informace o řádku původní čísla a zdrojové soubory.

Při použití #line směrnice, soubor názvy musí být uzavřeny v uvozovkách.Pokud není doslovné znění token (@) se zobrazí před řetězec, musí escape zpětného lomítka pomocí dvě zpětná lomítka místo za účelem jejich použití v cestě.Platný řádek tokeny jsou následující.V těchto příkladech předpokládejme, že původní soubor Script1 výsledků v automaticky generované F# kód souboru při spuštění pomocí nástroje a generování kódu v umístění těchto směrnic z některých tokeny na řádku v souboru 25 Script1.

# 25
#line 25
#line 25 "C:\\Projects\\MyProject\\MyProject\\Script1"
#line 25 @"C:\Projects\MyProject\MyProject\Script1"
# 25 \@\"C:\Projects\MyProject\MyProject\Script1\"

Tato klíčová slova ukazují, že na tomto místě generovaný kód F# je odvozen z některé konstrukce na nebo poblíž řádku 25 v Script1.

Direktivy kompilátoru

Direktivy kompilátoru podobat direktivy předprocesoru, protože předchází přidejte, ale namísto interpretuje preprocesoru, jsou ponechány pro kompilátor interpretovat a jednat.

Následující tabulka uvádí směrnice kompilátoru, který je k dispozici v F#.

Směrnice

Description

#light["na" | "vypnout"]

Povolí nebo zakáže lehký syntaxe, kompatibilita s jinými verzemi ML.Lehký syntaxe je ve výchozím nastavení povoleno.Syntaxe podrobného vždy povoleno.Můžete tedy lehký syntaxe a úplné syntaxe.Směrnice #light samotný je ekvivalentní #light "on".Pokud zadáte #light "off", je třeba použít úplné syntaxi pro všechny konstrukce jazyka.Zobrazí syntaxi v dokumentaci k F# s předpokladů pomocí syntaxe lehký.Další informace naleznete v tématu Syntaxe podrobného (F#).

Směrnic interpret (fsi.exe), viz F# referenční interaktivní (fsi.exe).

Viz také

Další zdroje

F# Language Reference

Volby kompilátoru (F#)