Příkaz přiřazení se vyskytuje ve většině imperativních programovacích jazyků. Způsobí nastavení či změnu hodnoty nějaké proměnné.

Zápis V následující ukázkách je p proměnná a výraz výraz.

Přiřazení se nejčastěji zapisuje pomocí rovnítka (=): p = výraz – Java, C, C++, C#, Python, Visual Basic .NET, PHP, JavaScript, Perl, Objective-C, Swift, Go, Ruby V některých jazycích se (pro odlišení od operátoru porovnání) používá např. :=: p := výraz – Ada, ALGOL, Eiffel, Modula-2, Oberon, Pascal, Seed7, Smalltalk V učebnicích se někdy používá znak ←, ten však v praxi většinou není dostupný na klávesnici, použití <- se tomu blíží: p <- výraz – S, R Některé jazyky vyžadují použití klíčového slova: LET p = výraz – některé verze jazyka BASIC MOVE výraz TO p – COBOL COMPUTE p = výraz – COBOL MAKE "p :výraz – Logo Extrémním případem konstrukce přiřazovacího příkazu je jazyk Tcl, kde je třeba použít příkaz set pro uložení hodnoty do proměnné, hranaté závorky pro dosazení výsledku příkazu do jiného příkazu, příkaz expr pro vyhodnocení výrazu a složené závorky pro seskupení výrazu do jednoho řetězce a zabránění předčasnému vyhodnocení proměnných: set p [expr {výraz}]

l-hodnota Cíl (který se podle konvence uvádí vlevo od přiřazení) může být pouze taková konstrukce, u které interpreter nebo překladač daného programovacího jazyka zná, kam bude hodnota uložena. Cíl tedy může být popsán přímo jménem proměnné nebo objektového atributu či tzv. vlastnosti (ve vyšších programovacích jazycích) a nebo (u těch nižších) registrem s výrazem, který nějak určuje cílovou adresu, na kterou má být příslušná hodnota uložena. Některé jazyky pomocí přiřazení abstrahují i např. zápis na některý ze vstupních portů počítače; v takovém případě není cíl určen místem v paměti ale číslem tohoto portu. Vyšší objektové jazyky dovolují přiřazení určité vlastnosti objektu abstrahovat za zavolání objektové metody s hodnotou, jež má být přiřazena, jako parametrem, a je pak na programátorovi aby spolu s přiřazením provedl libovolnou operaci, např. hodnotu zkontroloval a případně odmítl, a podobně.

Některé výrazy však popisují pouze hodnotu, nikoli adresu (např. číselný literál), takové výrazy nemohou být jako cíl přiřazení použity. Bylo „nepsaným pravidlem“ dohodnuto (a většina programovacích jazyků, s výjimkou některých assemblerů, to dodržuje), že cíl, do kterého lze přiřadit (a tedy i předat, zapsat či odeslat hodnotu), bude nalevo od operátoru přiřazení. Tento koncept se někdy označuje jako l-hodnota (anglicky l-value z left-value, tj. „levá hodnota“).

Příklad Jazyk C i = 10; *j = i + 3; k = foo(i, j);

Jazyk Pascal i := 10; j^ := i + 3; k := foo(i, j);

Odkazy Reference

Kategorie:Programovací konstrukce Kategorie:Binární operátory