0 امتیاز
قبل در برنامه نویسی توسط (426 امتیاز)
ویرایش شده قبل توسط

فرق بینAnonymous Implementation با lambda Expersion چیه؟

میگن تویه lambda باید متغییر ها final باشن یا اینکه خودمون تغییر ندیم در غیر اینصورت خطا میدن

اما

 Map<Integer, Integer> map = new HashMap<>();
    map.put(1, 1);
    map.put(12, 12);
    Map<Integer, Integer> map2 = new HashMap<>();
    map2.put(10, 10);
    map2.put(11, 11);
    map2.forEach((key, value) -> {
      map.computeIfAbsent(key, k -> {
        k = key;
        Integer v = 0;
        if (k < 100)
          v = k * 2;
        return v;
      });
    });

تویه این یه تکیه کد در قسمت map.computeIfAbsent من گفتم k = key پس مقدار دهی کردم و خطایی هم نمیده چرا؟

قبل توسط (1.1هزار امتیاز)
چیزی که من میبینم k و key پارامتر های lambda هستن و متغییر بیرون lambda نیستن.

سوالات مشابه

0 امتیاز
1 پاسخ 498 بازدید
+1 امتیاز
1 پاسخ 441 بازدید
+1 امتیاز
1 پاسخ 1.2هزار بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+2 امتیاز
1 پاسخ 942 بازدید
+1 امتیاز
1 پاسخ 403 بازدید
0 امتیاز
1 پاسخ 627 بازدید
+1 امتیاز
1 پاسخ 1.6هزار بازدید
...