Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Klíčové slovo vs. rezervované slovo

Klíčové slovo je součást jazyka a překladač/interpret ho bere předem definovaným způsobem:

například když narazí na if tak vůbec nezkoumá, zda by to nemohla být proměnná, funkce, nebo cosi jiného a bere to jako podmíněný příkaz, se zadrátovanou syntaxí. Pokud je trochu rozumný, tak pokus o deklarování proměnné, či funkce s názvem if bez přemýšlení označí za syntaktickou chybu a odmítne se zabývat jiným možným významem.

Rezervované slovo není přímo součást jazyka jako syntaxe, ale autoři si vyhradili, že toto slovo bude znamenat tuto věc - většinou jde o standardní knihovny, proměnné, konstanty a tak, které se používají takřka všude a použít to jméno v jiném významu by vedlo jednak ke zmatení a jednak k mnohým problémům, protože i autoři jiných knihoven spoléhají na to, že znamená to, co znamená. Když na něj překladač narazí, tak je to pro něj jen další proměnná/konstanta/funkce/modul a podle toho se k nim chová (nemají pro něj zvláštní význam).

Například true a false jsou definovány ve standardní knihovně jako konstanty a ačkoli to technicky udělat lze, tak by se jejich hodnoty, natož významy, rozhodně neměly měnit, jinak se pravděpodobně rozsype skoro všechno.

Naopak pokud si v nějaké svojí funkci zadefinuješ proměnnou DataOk jako logickou, tak ti překladač ohlídá, že v té samé funkci do ní nepřiřadíš třeba řetězec, nebo ji nezadefinuješ ještě jednou ve stejném scopu (protože to by byla chyba). Ale v jiné funkci si ji klidně můžeš zadefinovat jako celočíselnou a počítat si do ní počet správných vzorků a ve třetí funkci to klidně může být řetězec, který se má vypsat v případě úspěchu. Z hlediska překladače jde o tři naprosto různé proměnné, které nemají nic společného a ve čtvrté funkci nemusí taková proměnná být vůbec. Zde nejde o klíčové ani rezervované slovo.

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny