Sobes.tech
Junior — Middle

Kas võib salvestada sulgemisfunktsioone massiivides programmeerimiskeeltes?

sobes.tech AI

Vastus AI-lt

Jah, programmeerimiskeeltes, mis toetavad funktsioone esimese klassi objektidena (näiteks Swift, Objective-C, JavaScript), saab sulgemisi (closures) salvestada massiivides või teistes kogumites.

iOS (Swift) näeb see välja selline:

let closures: [() -> Void] = [
    { print("Esimene sulg") },
    { print("Teine sulg") }
]

closures[0]() // Kuvab: Esimene sulg

See on kasulik, kui soovite salvestada tegevuste komplekti, mida hiljem kutsuda, näiteks sündmuste käsitlejad või viivitusega ülesanded. Peamine on olla tähelepanelik muutujate haaramise suhtes sulgemistes, et vältida mälulekkeid.