Junior — Middle
Môžete vysvetliť, čo sa rozumie pod Auto Closure v kontexte programovania?
sobes.tech AI
Odpoveď od AI
Auto Closure je mechanizmus v Swift, ktorý automaticky obaluje výraz do uzávierky (closure). To znamená, že namiesto explicitného odovzdania uzávierky môžete odovzdať výraz, ktorý bude vyhodnotený až pri volaní uzávierky.
Výhody:
- Odložené vyhodnotenie: výraz sa nevyhodnocuje okamžite, ale iba keď je to potrebné.
- Pohodlná syntax: kód je čistejší a jednoduchší.
Príklad:
func logIfTrue(_ predicate: @autoclosure () -> Bool) {
if predicate() {
print("Podmienka je pravdivá")
}
}
logIfTrue(2 > 1) // Výraz 2 > 1 je automaticky zabalený do uzávierky
Tu sa 2 > 1 nevyhodnocuje okamžite pri volaní, ale iba vo vnútri funkcie pri volaní predicate().