Tất cả các giá trị cho b
bên dưới cho phép tôi gọi một phương thức với *args
cú pháp.
def some_method(a)
puts a
end
b = 1
some_method(*b) # => 1
b = false
some_method(*b) # => false
b = "whatever"
some_method(*b) # => "whatever"
Với nil
, tôi mong đợi nhận được nil
, không phải lỗi đối số:
b = nil
some_method(*b) # => ArgumentError: wrong number of arguments (0 for 1)
Có chuyện gì đang xảy ra ở đây?