Hodnoty

Hodnoty v jazyce F# jsou množství, která mají určitý typ; hodnoty můžou být celočíselné nebo čísla s plovoucí desetinou čárkou, znaky nebo text, seznamy, sekvence, matice, řazené sjednocení, záznamy, typy tříd nebo hodnoty funkcí.

Vytvoření vazby hodnoty

Vazba termínu znamená přidružení názvu k definici. Klíčové let slovo vytvoří vazbu na hodnotu, jako v následujících příkladech:

let a = 1
let b = 100u
let str = "text"

// A function value binding.

let f x = x + 1

Typ hodnoty je odvozen z definice. Pro primitivní typ, například celočíselné číslo nebo číslo s plovoucí desetinou čárkou, je typ určen z typu literálu. V předchozím příkladu proto kompilátor odvozuje typ b , který má být unsigned int, zatímco kompilátor odvozuje typ, který a má být int. Typ hodnoty funkce je určen z návratové hodnoty v těle funkce. Další informace o typech hodnot funkcí najdete v tématu Funkce. Další informace o typech literálů najdete v tématu Literály.

Kompilátor ve výchozím nastavení nevystavuje diagnostiku nepoužívaných vazeb. Pokud chcete tyto zprávy dostávat, povolte v souboru projektu upozornění 1182 nebo při vyvolání kompilátoru (viz --warnon možnosti kompilátoru).

Proč neměnné?

Neměnné hodnoty jsou hodnoty, které nelze v průběhu provádění programu změnit. Pokud jste zvyklí na jazyky, jako je C++, Visual Basic nebo C#, můžete zjistit, že F# dává přednost před neměnnými hodnotami, nikoli proměnnými, které lze při provádění programu přiřadit nové hodnoty. Neměnná data jsou důležitým prvkem funkčního programování. Ve vícevláknovém prostředí jsou sdílené proměnlivé proměnné, které je možné změnit mnoha různými vlákny, obtížně spravovat. U proměnlivých proměnných může být někdy obtížné zjistit, jestli se proměnná může změnit, když je předána jiné funkci.

V čistě funkčních jazycích neexistují žádné proměnné a funkce se chovají přísně jako matematické funkce. Pokud kód v procedurálním jazyce používá přiřazení proměnné ke změně hodnoty, ekvivalentní kód ve funkčním jazyce má neměnnou hodnotu, která je vstup, neměnná funkce a různé neměnné hodnoty jako výstup. Tato matematická striktnost umožňuje přísnější odůvodnění chování programu. Toto přísnější odůvodnění je to, co umožňuje kompilátorům kontrolovat kód přísněji a optimalizovat efektivněji a pomáhá vývojářům usnadnit pochopení a psaní správného kódu. Funkční kód je proto pravděpodobně jednodušší ladit než běžný procedurální kód.

F# není čistý funkční jazyk, ale plně podporuje funkční programování. Použití neměnných hodnot je osvědčeným postupem, protože to umožňuje kódu těžit z důležitého aspektu funkčního programování.

Proměnlivé proměnné

Pomocí klíčového slova mutable můžete určit proměnnou, kterou lze změnit. Proměnlivé proměnné v jazyce F# by měly mít obecně omezený rozsah, a to buď jako pole typu, nebo jako místní hodnota. Proměnlivé proměnné s omezeným oborem jsou snazší řídit a jsou méně pravděpodobné, že budou změněny nesprávnými způsoby.

Počáteční hodnotu můžete přiřadit k proměnlivé proměnné pomocí klíčového let slova stejným způsobem, jako byste definovali hodnotu. Rozdíl je ale v tom, že pomocí operátoru můžete následně přiřadit nové hodnoty k proměnlivým proměnným, jako v následujícím příkladu <- .

let mutable x = 1
x <- x + 1

Hodnoty označené mutable můžou být automaticky upřednostněné 'a ref , pokud jsou zachyceny uzavřením, včetně formulářů, které vytvářejí uzavření, jako seq jsou tvůrci. Pokud chcete být upozorněni, pokud k tomu dojde, povolte v souboru projektu upozornění 3180 nebo při vyvolání kompilátoru.

Nadpis Popis
let – vazby Poskytuje informace o použití klíčového let slova k vytvoření vazby názvů na hodnoty a funkce.
Functions Poskytuje přehled funkcí v jazyce F#.

Viz také