: 나는 그것을 호출 할 때스칼라 게으른 발 캐싱
def maybeTwice2(b: Boolean, i: => Int) = {
lazy val j = i
if (b) j+j else 0
}
왜 하이 두 번 인쇄되지 않습니다 좋아 :
는maybeTwice2(true, { println("hi"); 1+41 })
이 예는 스칼라의 책 "기능적 프로그래밍에서 실제로 "왜"안녕하세요 "가 두 번 인쇄되지 않는 이유는 저에게 충분히 설득력이 없습니다. 그래서 여기에서 이것을 묻는 것을 생각했습니다!
답변을 수락하거나보다 자세한 설명을 부탁드립니다. –
왜 "이유가" "설득력이 없다"는 것을 알 수없는지는 분명하지 않습니다. 'i'는 함수입니다. 'maybeTwice2'는 한 번 참조 (호출)합니다. 왜 처음부터 두 번 부르기를 기대합니까? – Dima
나는 당신이 책에 있었던 것에 대한 설명을 기대했을 것입니다. 그것은 나에게 훨씬 더 의미가 있습니다! – sparkr