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 پاسخ 389 بازدید
+1 امتیاز
1 پاسخ 313 بازدید
+1 امتیاز
1 پاسخ 1.1هزار بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+2 امتیاز
1 پاسخ 677 بازدید
+1 امتیاز
1 پاسخ 310 بازدید
0 امتیاز
1 پاسخ 530 بازدید
+1 امتیاز
1 پاسخ 1.5هزار بازدید
...