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