[ruby] Ruby에서-> 연산자를 무엇이라고합니까?

  1. ->다음과 같이 운영자 에게 무엇을 호출 합니까?

    ->(...) do
      ...
    end
  2. 다음 스 니펫이 동일하지 않습니까?

    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 :: newKernel # proc 도 참조하십시오 .


답변