42
W poniższym przykładzie:Co to jest operator -> (pchnięcie) w Ruby?
default: -> { Time.now }
Co ->
? Jestem zaznajomiony z =>
, ale po raz pierwszy widzę ->
.
W poniższym przykładzie:Co to jest operator -> (pchnięcie) w Ruby?
default: -> { Time.now }
Co ->
? Jestem zaznajomiony z =>
, ale po raz pierwszy widzę ->
.
Jest to "lambda" 1,9 "nożem". Na przykład zobacz this article from 2008.
pigułce:
> foo2 = ->(arg) { arg*2 }
> foo2.call "now"
=> nownow
Uwaga brak miejsca między ->
i (arg)
, to zamierzone.
Właściwie jestem prawie pewien, że spacja między '->' a '(arg)' nie jest wymagana. Po prostu wypróbowałem to w 'irb' z uruchomieniem' ruby 1.9.3p484'. Nie wiem, czy przestrzeń była wymagana we wcześniejszych wersjach. Lub, czy mówisz "intencjonalny" jako styl kodowania dla jasności? – zealoushacker
Ah, oops, rozumiem. Podczas korzystania z parens wymagane jest miejsce, ale rodzice sami nie są potrzebni. Tak więc 'foo2 = -> arg {arg * 2}' będzie prawidłową składnią. – zealoushacker
@zealoushacker Prawidłowe :-) IMO odejście od paren jest bardziej zagmatwane, ale to mniej techniczny argument niż stylistyczny, więc nie zawracam sobie głowy tymi argumentami. –