Sobes.tech
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.