Hodnoty

Hodnoty v F # jsou množství, které má konkrétní typ; hodnoty mohou být integrální nebo plovoucí desetinné čárky, znaky nebo text, seznamy, sekvence, pole, řazené kolekce členů, rozlišené sjednocení, záznamy, typy tříd nebo hodnoty funkcí.

Vytvoření vazby hodnoty

Pojem vazba znamená přidružení názvu k definici. letKlíčové slovo váže hodnotu, jak je uvedeno 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, jako je číslo integrálního nebo plovoucího bodu, je typ určen z typu literálu. Proto kompilátor odvodí v předchozím příkladu typ b , který má být unsigned int , zatímco kompilátor odvodí typ, a který má být int . Typ hodnoty funkce je určen z návratové hodnoty v těle funkce. Další informace o typech hodnot funkcí naleznete v tématu Functions. Další informace o typech literálů naleznete v tématu Literal.

Kompilátor ve výchozím nastavení nevydá diagnostiku o nepoužitých vazbách. Chcete-li přijímat tyto zprávy, povolte upozornění 1182 v souboru projektu nebo při vyvolání kompilátoru (viz část --warnon Možnosti kompilátoru).

Proč neměnné?

Neměnné hodnoty jsou hodnoty, které nelze změnit v průběhu provádění programu. pokud používáte k jazykům, jako je například C++, Visual Basic nebo C#, může být překvapivé, že F # umístí primacy nad neměnné hodnoty namísto proměnných, které mohou být při provádění programu přiřazeny nové hodnoty. Neměnné data jsou důležitým prvkem funkčního programování. V prostředí s více vlákny jsou sdílené proměnlivé proměnné, které lze změnit pomocí mnoha různých vláken, obtížné spravovat. I s proměnlivými proměnnými může někdy být obtížné určit, zda může být proměnná změněna při předání jiné funkci.

V čistě funkčních jazycích nejsou k dispozici žádné proměnné a funkce se chovají výhradně jako matematické funkce. Kde kód v procedurálním jazyce používá přiřazení proměnné pro změnu hodnoty, ekvivalentní kód v funkčním jazyku má neproměnlivou hodnotu, která je vstupem, neproměnlivá funkce a různé neměnné hodnoty jako výstup. Tato Matematická striktní umožňuje důkladnější rozhodnutí o chování programu. Tímto užším důvodem je to, že kompilátorům umožňuje, aby se kód kontrolovalější a optimalizoval efektivněji a usnadnil vývojářům pochopení a psaní správného kódu. Funkční kód je proto pravděpodobně snazší 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 dobrý postup, protože to umožňuje vašemu kódu těžit z důležitého aspektu funkčního programování.

Proměnlivé proměnné

Klíčové slovo lze použít mutable k určení proměnné, kterou lze změnit. Proměnlivé proměnné v jazyce F # by měly obecně mít omezený rozsah, buď jako pole typu, nebo jako místní hodnotu. Proměnlivé proměnné s omezeným rozsahem mají snadnější kontrolu a jsou méně pravděpodobně upravovány nesprávnými způsoby.

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

let mutable x = 1
x <- x + 1

Hodnoty s označením mutable mohou být automaticky povýšeny na hodnotu, 'a ref Pokud je zachycena uzávěrkou, včetně formulářů, které vytvářejí uzávěry, jako jsou například seq tvůrci. Pokud chcete být upozorněni v případě, že k tomu dojde, povolte upozornění 3180 v souboru projektu nebo při vyvolání kompilátoru.

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

Viz také