Junior — Middle
შეგვიძლია ანონიმური ფუნქცია შევინახოთ ცვლადში?
sobes.tech AI
პასუხი AI-სგან
დიახ, Android-ში (და Java/Kotlin-ში) შეუძლებელია ანონიმური ფუნქციების (ლამბდა გამოთქმების) შენახვა ცვლადებში. მაგალითად, Kotlin-ში, ანონიმური ფუნქცია არის ლამბდა და მას შეუძლია მიენიჭოს შესაბამის ფუნქციონალურ ტიპს ცვლადში:
val sum: (Int, Int) -> Int = { a, b -> a + b }
println(sum(3, 4)) // 7
Java-ში, ვერსია 8-დან, შესაძლებელია გამოიყენოთ ფუნქციონალური ინტერფეისები და ლამბდა გამოთქმები:
Function<Integer, Integer> square = x -> x * x;
System.out.println(square.apply(5)); // 25
ამიტომ, ანონიმური ფუნქციები შეიძლება შენახული იყოს ცვლადებში და გადაეცეს ობიექტებად.