Sobes.tech
Junior — Middle

Můžete vysvětlit, co se rozumí pod Auto Closure v kontextu programování?

sobes.tech AI

Odpověď od AI

Auto Closure je mechanismus ve Swiftu, který automaticky obaluje výraz do uzávěru (closure). To znamená, že místo explicitního předání uzávěru můžete předat výraz, který bude vyhodnocen pouze při volání uzávěru.

Výhody:

  • Odložené vyhodnocení: výraz není vyhodnocen ihned, ale pouze když je potřeba.
  • Pohodlná syntaxe: kód je čistší a jednodušší.

Příklad:

func logIfTrue(_ predicate: @autoclosure () -> Bool) {
    if predicate() {
        print("Podmínka je pravdivá")
    }
}

logIfTrue(2 > 1) // Výraz 2 > 1 je automaticky zabalen do uzávěru

Zde se 2 > 1 nevyhodnocuje ihned při volání, ale pouze uvnitř funkce při volání predicate().