Junior — Middle
შესაძლებელია თუ არა დახურვის ფუნქციების შენახვა მასივებში პროგრამირების ენებში?
sobes.tech AI
პასუხი AI-სგან
დიახ, პროგრამირების ენებში, რომლებიც ფუნქციებს პირველი კლასის ობიექტებად უჭერენ მხარს (მაგალითად, Swift, Objective-C, JavaScript), კლოზურები (closures) შეიძლება ინახებოდეს მასივებში ან სხვა კოლექციებში.
iOS (Swift)-ში ეს ასე გამოიყურება:
let closures: [() -> Void] = [
{ print("პირველი კლოზური") },
{ print("მეორე კლოზური") }
]
closures[0]() // გამოიტანს: პირველი კლოზური
ეს სასარგებლოა, როდესაც გსურთ შეინახოთ მოქმედებების ნაკრები შემდგომი გამოძახებისთვის, მაგალითად, მოვლენის დამუშავებლები ან დაგვიანებული დავალებები. მთავარი ყურადღება უნდა მიაქციოთ ცვლადების დაჭერას კლოზურებში, რათა თავიდან აიცილოთ მეხსიერების ნაკადები.