문제

글쓰기 대신

((x: Double) => (((y: Double) => y*y))(x+x))(3)

나는 같은 것을 쓰고 싶다

((x: Double) => let y=x+x in y*y)(3)

스칼라에 이런 종류의 구문 설탕과 같은 것이 있습니까?

도움이 되었습니까?

해결책

실제로 : 그것은 "라고 불립니다."val". :-)

({ x: Double =>
  val y = x + x
  y * y
})(3)

버팀대는 물론 선택 사항입니다. 기능을 정의 할 때 괄호보다 선호합니다 (결국 LISP가 아닙니다). 그만큼 val 키워드는 현재 어휘 범위 내에서 새로운 바인딩을 정의합니다. Scala는 LISP 및 ML과 같은 언어와 달리 현지인들이 자신의 범위를 정의하도록 강요하지 않습니다.

실제로, var 또한 모든 범위 내에서 작동하지만 사용하는 것은 나쁜 스타일로 간주됩니다.

다른 팁

좋아, 여기에 바인딩이있는 하나의 라이너가 있습니다.

 ({ x:Double => val y = x + x; y * y })(3)

건배

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top