Swift je programovací jazyk vyvinutý společností Apple pro vývoj mobilních aplikací pro iOS, macOS, watchOS a tvOS. Vyznačuje se jednoduchostí a bezpečností syntaxe a výkonnými schopnostmi.
Jedním z klíčových prvků jazyka Swift je enum. Enum (celý název - výčet) umožňuje vytvořit sadu propojených hodnot, které lze v kódu použít jako konstanty nebo proměnné. Kromě toho však enum poskytuje také možnost vytvářet vypočítané vlastnosti.
Vypočítaná vlastnost v enum je vlastnost, jejíž hodnota se vypočítá pokaždé, když se na ni obrátíte. Tato vlastnost může být užitečná pro získání hodnoty založené na jiných vlastnostech výčtu nebo pro provádění složitých výpočtů.
Chcete-li vytvořit vypočítanou vlastnost v enum, musíte použít klíčové slovo var před určením vlastnosti uvnitř výčtu. Poté následuje samotná definice vlastnosti, která může použít jiné vlastnosti výčtu nebo provádět složité výpočty. V důsledku toho, když se obrátíte na tuto vlastnost, dojde k výpočtu hodnoty a návratu výsledku.
Swift: základy
Hlavním rysem Swiftu je jeho snadné použití. Nabízí čistou a expresivní syntaxi, díky čemuž je Kód pro vývojáře srozumitelnější a pohodlnější.
Jedním z hlavních návrhů jazyka Swift je enum (výčet). Umožňuje vytvářet sady souvisejících hodnot, které lze použít v kódu. Kromě toho může mít enum vypočítatelné vlastnosti, které se vypočítají pouze tehdy, když se na ně obrátíte.
Vypočítané vlastnosti v enum se používají k získání dalších informací o hodnotách výčtu. Mohou být užitečné například pro určení délky řádku spojeného s určitou hodnotou z výčtu.
Chcete-li vytvořit vypočítanou vlastnost v enum, musíte přidat blok kódu s klíčovým slovem var a určit typ výsledku vlastnosti. Uvnitř bloku kódu pak lze k výpočtu hodnoty vlastnosti použít jiné vlastnosti a metody.
Pokud například máme výčet barev, který má hodnoty Red, Green a Blue, můžeme přidat vypočítanou vlastnost, abychom získali RGB kód odpovídající barvy.
enum Color >>
V tomto příkladu ENUM Color přidal vypočítatelnou vlastnost rgbcode, která vrací řádek s RGB kódem odpovídající barvy. Tuto vlastnost můžeme použít následovně:
let color: Color = .Greenprint(color.rgbCode) // "00FF00"
Výpočetní vlastnosti tak umožňují přidat funkčnost do enum, takže kód je flexibilnější a uživatelsky přívětivější.
Je důležité poznamenat, že vypočítané vlastnosti v enum neukládají hodnoty, ale vypočítávají se "za běhu", když se na ně odkazuje. Proto mohou být použity k získání aktuálních dat v závislosti na aktuálním stavu enum.
Swift: enum
V programovacím jazyce Swift existuje specifický typ dat s názvem enum. Umožňuje definovat vlastní výčty (enumerations), které mohou obsahovat sadu vzájemně propojených hodnot.
Hlavní aplikací enum je vytvoření sady možných možností pro konkrétní hodnotu. Můžete například vytvořit výčet představující možné šachové figurky:
| enum ChessPiece: | String |
|---|---|
| case king | "Král" |
| case queen | "Královna" |
| case rook | "Věž" |
| case bishop | "Slon" |
| case knight | "Kůň" |
| case pawn | "Pěšec" |
Vytvořili jsme tedy seznam ChessPiece, který obsahuje možné šachové figurky. Když vyhlásíme proměnnou nebo konstantu s typem ChessPiece, můžeme určit, jakou postavu přesně představuje.
V některých případech však chceme získat další informace o výčtu. K tomu lze použít vypočítané vlastnosti uvnitř enum. Vypočítané vlastnosti umožňují vypočítat hodnotu pokaždé, když se na ni obrátíte. Můžeme například přidat vypočítanou vlastnost k popisu každé šachové figurky:
| enum ChessPiece: | String |
|---|---|
| case king | "Král" |
| case queen | "Královna" |
| case rook | "Věž" |
| case bishop | "Slon" |
| case knight | "Kůň" |
| case pawn | "Pěšec" |
| var description: String |
return " Král je nejdůležitější postavou v šachu." return " královna je nejmocnější postavou v šachu." return " věž je postava pohybující se pouze v rovných liniích." return " slon je postava pohybující se pouze diagonálně." return "kůň je postava pohybující se písmenem "G"." return " pěšec je nejméně silná, ale nejpočetnější postava v šachu." Nyní, když se podíváme na vypočítatelnou vlastnost description pro každou figurku, můžeme získat podrobnější popis její role v šachové hře. Enum ve Swiftu poskytuje široké možnosti pro vytváření seznamů a jejich použití v kódu. Jsou užitečné pro určení sady možných možností a přidání výpočetních vlastností vám umožní získat další informace o každé variantě. Co jsou vypočítatelné vlastnostiNa rozdíl od běžných vlastností nemají vypočítané vlastnosti vlastní úložiště a nevyžadují explicitní oznámení proměnných nebo konstant. Místo toho jsou definovány pomocí getteru a/nebo setru, které vypočítají hodnotu vlastnosti při čtení nebo zápisu. Definice vypočítané vlastnosti se skládá ze dvou částí: getter a/nebo setter. Getter je funkce, která vypočítá hodnotu vlastnosti při čtení. Setter je funkce, která nastavuje novou hodnotu vlastnosti. Vypočítané vlastnosti mohou mít pouze Getter (pak jsou pouze pro čtení), pouze setr (pak jsou pouze pro zápis) nebo jak Getter, tak setr. Vypočítané vlastnosti je vhodné použít, když hodnota vlastnosti závisí na jiných vlastnostech nebo datech, vyžaduje složitou logiku nebo vyžaduje výpočetní operace. Umožňují vám vytvářet flexibilnější a modulárnější řešení a usnadňují podporu a změnu kódu. Jak vytvořit vypočítatelné vlastnosti v enumVýpočetní vlastnosti umožňují přidat další funkce do výčtů (enum) v programovacím jazyce Swift. Umožňují vypočítat hodnotu vlastnosti pokaždé, když je přístupná, místo ukládání pevné hodnoty. Chcete-li vytvořit vypočítanou vlastnost v enum, musíte ji definovat pomocí výpočetní jednotky kódu. Výpočetní jednotka kódu poskytuje logiku pro výpočet hodnoty vlastnosti na základě dostupných dat ve výčtu. Kód pro vytvoření vypočítané vlastnosti v enum může vypadat takto:
V tomto příkladu jsme vytvořili enum s názvy měsíců a vypočítanou vlastností numberOfDays . V bloku kódu k výpočtu hodnoty této vlastnosti používáme příkaz switch ke kontrole aktuální instance výčtu a vrácení příslušné hodnoty pro počet dní. Nyní, abyste získali počet dní v konkrétním měsíci, můžete použít následující kód:
Vytvořili jsme tedy vypočítanou vlastnost v enum a použili jsme ji k získání hodnot v závislosti na aktuální instanci výčtu. Příklad použití výpočetních vlastností v enumVýpočetní vlastnosti poskytují možnost přidat další funkce do výčtů v jazyce Swift. V této části se podíváme na příklad použití vypočítaných vlastností v enum. Předpokládejme, že máme výčet Direction, který představuje možné směry pohybu: Chceme přidat vypočítanou vlastnost isVertical, který vrátí true, pokud je směr svislý (nahoru nebo dolů), a false jinak: Nyní můžeme tuto vypočítatelnou vlastnost použít následovně: let direction = Direction.up let anotherDirection = Direction.right Tímto způsobem můžeme vypočítané vlastnosti v enum použít k přidání další funkčnosti a zlepšení čitelnosti kódu. |