Junior — Middle
Môžete vysvetliť koncept Autoclosure a ako sa používa v programovacom jazyku?
sobes.tech AI
Odpoveď od AI
Autoclosure je špeciálny typ uzávierky v jazyku Swift, ktorý sa automaticky vytvára z výrazu odovzdaného funkcii. Umožňuje odložiť vyhodnotenie výrazu do okamihu jeho použitia vo vnútri funkcie, pričom syntax volania zostáva jednoduchá.
Napríklad namiesto toho, aby ste explicitne písali uzávierku:
func logIfTrue(_ predicate: () -> Bool) {
if predicate() {
print("Podmienka je pravdivá")
}
}
logIfTrue({ 2 > 1 })
Môžete použiť autoclosure:
func logIfTrue(_ predicate: @autoclosure () -> Bool) {
if predicate() {
print("Podmienka je pravdivá")
}
}
logIfTrue(2 > 1) // Výraz je automaticky zabalený do uzávierky
Toto zlepšuje čitateľnosť kódu a umožňuje odovzdávať výrazy, ktoré budú vyhodnotené iba v prípade potreby.