6
Chcę przekazać argumenty do Proc jak przy użyciu splat, ale zwraca błąd wrong number of block arguments (1 for 0)
Jak utworzyć Procy ze zmiennymi argumentami w Crystal?
$callbacks = {} of String => Array(->)
def add_callback(event, &block)
begin
$callbacks[event.to_s] << block
rescue
$callbacks[event.to_s] = [block]
end
end
add_callback(:event) do |arg|
puts "event!"
end
$callbacks["event"].first.call
Error in line 11: wrong number of block arguments (1 for 0)
http://carc.in/#/r/7gw
Więc nie mogę zrobić tak, jak robię w Ruby? http://carc.in/#/r/7h6 –
Nie w pełni, nie. Crystal musi znać listę argumentów, a obsługa wielu różnych w tej samej kolekcji stanie się dość brzydka, by wkrótce nią zarządzać. Jak pokazałem, możliwe jest jednak pominięcie argumentów blokowych, których nie potrzebujesz. –
Rozumiem ... a potem próbowałem zrobić to z Hash i myślę, że nie rozumiem jak to działa jeszcze. Http://carc.in/#/r/7hk –