No tienes acceso a esta clase

¬°Contin√ļa aprendiendo! √önete y comienza a potenciar tu carrera

√öltima oportunidad para asegurar tu aprendizaje por 1 a√Īo a precio especial

Antes: $249

Currency
$189/a√Īo

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

0D
6H
37M
44S

Nested Functions

8/16
Recursos

Aportes 6

Preguntas 0

Ordenar por:

¬ŅQuieres ver m√°s aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Por si a alguno a√ļn no le queda claro, algunas notas:

// Funciones anidadas: Una función está anidada cuando está definida dentro de otra
func chooseStepFunction(backward: Bool) -> (Int) -> Int { // Función que devuelve una función
    func stepFoward(_ input: Int) -> Int { // Función anidada
        return input + 1
    }
    func stepBackward(_ input: Int) -> Int { // Función anidada
        return input - 1
    }
    return backward ? stepBackward : stepFoward
}

var value = -7
let moveNearerZero = chooseStepFunction(backward: value > 0) // Esto tendrá como valor una función que acepta un entero y retorna un entero
while value != 0 {
    print("El valor actual es \(value).")
    value = moveNearerZero(value) // Por eso aquí al llamar esa variable, le mando un parámetro
}
print("Cero!")```

Este video aclara lo explicado en el anterior

Resumen

Se trata de anidar funciones dentro de otras. Esto nos permite encapsular ciertas funciones dentro de otra y que no queremos que sean utilizadas en otro lugar.


func chooseStepFunction(backward: Bool) -> (Int) -> Int {
    func stepForward(_ input: Int) -> Int {
        return input + 1
    }

    func stepBackward(_ input: Int) -> Int {
        return input - 1
    }
    return backward ? stepBackward : stepForward
}

var value = 7
let moveNearerZero = chooseStepFunction(backward: value > 0)
while value != 0 {
    print("\(value)...")
    value = moveNearerZero(value)
}
print("Cero!!")

De esta manera, las funciones anidadas no podrán ser invocadas de forma independiente, solo a través de la función que las contiene.

Swift me esta enamorando! ‚̧ԳŹ

Se trata de anidar funciones dentro de otras. Esto nos permite encapsular ciertas funciones dentro de otra y que no queremos que sean utilizadas en otro lugar.


func chooseStepFunction(backward: Bool) -> (Int) -> Int {
    func stepForward(_ input: Int) -> Int {
        return input + 1
    }

    func stepBackward(_ input: Int) -> Int {
        return input - 1
    }
    return backward ? stepBackward : stepForward
}

var value = 7
let moveNearerZero = chooseStepFunction(backward: value > 0)
while value != 0 {
    print("\(value)...")
    value = moveNearerZero(value)
}
print("Cero!!")

De esta manera, las funciones anidadas no podrán ser invocadas de forma independiente, solo a través de la función que las contiene.

Muy potente este lenguaje y tenga un buen soporte para la programacion funcional me parece muy interesante.