내가 Java8 람다를 통해 파고 그리고 난이 다음과 같은 문제에 직면하고있어 잘 데이터를 변경하지 않습니다 호출하려고 시도하십시오.자바 8 람다
List<Integer> l = Arrays.asList(1,2,3);
DamnLambda.inc(l, x -> x+=1);
System.out.println(l); //[1,2,3] ? Why not [2,3,4] ?
왜 데이터가 변경되지 않는지 이해할 수 없습니다.
l.forEach(x -> x+1); //same thing, doesn't change the data.
내가 여기 실종 무엇 : 또한 같은 기능의 다른 버전을 시도?
루프 반복 변수에 값을 할당해도 실제로는 수행되지 않아야합니다. –
함수 프로그래밍의 요점이 빠져 있습니다. 입력을 변경하지 않아도됩니다. 입력의 변형 인 출력을 생성해야합니다. –
글쎄, 너희들이 날 잡았어. 나는 맹목적으로 목록에있는 람다 연산을 수행하려고 시도하고 있었고, 근본적인 규칙 중 하나를 잊어 버렸다. Btw. 코드가 컴파일됩니다. – krzakov