prostu biegł następującej linii kodu w aplikacji Rails:Jaki jest -> (myślnik większe niż) operator w Ruby/Rails
scope :for_uid, ->(external_id) { where(external_id: external_id) }
Co operator ->
oznacza? To trochę trudne dla Google.
prostu biegł następującej linii kodu w aplikacji Rails:Jaki jest -> (myślnik większe niż) operator w Ruby/Rails
scope :for_uid, ->(external_id) { where(external_id: external_id) }
Co operator ->
oznacza? To trochę trudne dla Google.
To jest cukier syntaktyczny.
->(external_id) { where(external_id: external_id) }
jest równa:
lambda { |external_id| where(external_id: external_id) }
Dzięki, wiedziałem, że wygląda znajomo. Po prostu nie wiedziałem, czego szukać, aby go znaleźć. –
Ah! Czy ukradli to z CoffeeScript? – Chloe
To new lambda notation. Ta składnia została wprowadzona w Rubim 1.9 i służy do definiowania nienazwanych funkcji.
W twoim przykładzie jest to zakres zdefiniowany przez funkcję bez nazwy.
Operator ->
został wprowadzony w Rubim 1.9 jako skrócona składnia dla starej funkcji lambda
. Zachowuje się prawie identycznie jak funkcja lambda
, ale pozwala określić parametry poza blokiem:
lambda {|param| puts param }
# becomes
-> (param) { puts params }
Nazywa się "pałąkowata lambda". Po prostu dla FYI. –
@fotanus - Dzięki, po prostu nie wiedziałem, czego szukać i większość wyszukiwarek ignoruje -> w wyszukiwanych terminach. –
Zawsze jest [symbolhound.com] (http://symbolhound.com/?q=ruby+-%3E), ale w tym przypadku nie jest to zbyt użyteczne. –