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 پاسخ 520 بازدید
+1 امتیاز
1 پاسخ 470 بازدید
+1 امتیاز
1 پاسخ 1.3هزار بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+2 امتیاز
1 پاسخ 971 بازدید
+1 امتیاز
1 پاسخ 423 بازدید
0 امتیاز
1 پاسخ 650 بازدید
+1 امتیاز
1 پاسخ 1.7هزار بازدید
...