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 پاسخ 499 بازدید
+1 امتیاز
1 پاسخ 442 بازدید
+1 امتیاز
1 پاسخ 1.2هزار بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+2 امتیاز
1 پاسخ 943 بازدید
+1 امتیاز
1 پاسخ 404 بازدید
0 امتیاز
1 پاسخ 628 بازدید
+1 امتیاز
1 پاسخ 1.6هزار بازدید
...