Sobes.tech
Junior — Middle

შესაძლებელია თუ არა დახურვის ფუნქციების შენახვა მასივებში პროგრამირების ენებში?

sobes.tech AI

პასუხი AI-სგან

დიახ, პროგრამირების ენებში, რომლებიც ფუნქციებს პირველი კლასის ობიექტებად უჭერენ მხარს (მაგალითად, Swift, Objective-C, JavaScript), კლოზურები (closures) შეიძლება ინახებოდეს მასივებში ან სხვა კოლექციებში.

iOS (Swift)-ში ეს ასე გამოიყურება:

let closures: [() -> Void] = [
    { print("პირველი კლოზური") },
    { print("მეორე კლოზური") }
]

closures[0]() // გამოიტანს: პირველი კლოზური

ეს სასარგებლოა, როდესაც გსურთ შეინახოთ მოქმედებების ნაკრები შემდგომი გამოძახებისთვის, მაგალითად, მოვლენის დამუშავებლები ან დაგვიანებული დავალებები. მთავარი ყურადღება უნდა მიაქციოთ ცვლადების დაჭერას კლოზურებში, რათა თავიდან აიცილოთ მეხსიერების ნაკადები.