-
->
다음과 같이 운영자 에게 무엇을 호출 합니까?->(...) do ... end
-
다음 스 니펫이 동일하지 않습니까?
succ = ->(x) {x + 1} succ = lambda {|x| x + 1}
답변
에서 언어 프로그래밍 루비 ( “방법, 프로세서 수, 람다 및 폐쇄”), 람다는 사용하여 정의 ->
라고 람다 문자 .
succ = ->(x){ x+1 }
succ.call(2)
코드는 다음과 같습니다.
succ = lambda { |x| x + 1 }
succ.call(2)
비공식적으로, 나는 그것이 stabby lambda 또는 stabby literal 라고 불리는 것을 들었습니다 .
답변
=>
== 해시 로켓
해시 맵 리터럴에서 키와 값을 구분합니다.
->
== 대시 로켓
Ruby 1.9.X (args 제외) 및 Ruby 2.X (args 포함)에서 람다 리터럴을 정의하는 데 사용됩니다. ( ->(x) { x * 2 }
& lambda { |x| x * 2 }
) 예제 는 실제로 동일합니다.
답변
람다 로켓
나는이 기사에서 그것을 얻었다. 그러나 먼저 루비 람다 속기에 대한 Google 검색
http://ruby-journal.com/becareful-with-space-in-lambda-hash-rocket-syntax-between-ruby-1-dot-9-and-2-dot -0 /
답변
->(x) { ... }
와 동일합니다 lambda { |x| ... }
. 람다를 만듭니다. Kernel # lambda를 참조하십시오 . 람다는 전달되는 매개 변수의 수가 올바른지 확인하는 일종의 proc입니다. Proc :: new 및 Kernel # proc 도 참조하십시오 .