double-splat

    1熱度

    2回答

    我的理解雙圖示是一個非數組對象上的單個呼叫圖示和to_a然後解離的元素分開。而且,由於nil.to_a被定義爲[],下面的轉換情況: [:foo, *nil, :bar] # => [:foo, *nil.to_a, :bar] # => [:foo, *[], :bar] # => [:foo, :bar] 通過類比,我認爲一個非散列對象上的雙圖示呼籲to_h然後開解離的鍵值對。而且,

    1熱度

    1回答

    我得到了這種奇怪的行爲,試圖使用雙摔跤擴大哈希變量。不知道爲什麼會發生這種情況。 我的紅寶石版本 ruby 2.2.6p396 (2016-11-15 revision 56800) 方案 class MyClass def my_method; end end MyClass.new.my_method(*[]) # returns nil MyClass.new.my_me

    4熱度

    3回答

    下面發生的事情對我來說似乎有點奇怪。 def f(a, b) puts "#{a} :: #{b}" end f(*[1, 2], **{}) # prints "1 :: 2" hash = {} f(*[1, 2], **hash) ArgumentError: wrong number of arguments (3 for 2) f(*[1, 2], **Has

    2熱度

    2回答

    在Python中,我可以通過一個字典,它的鍵匹配參數的名字與**(雙圖示)操作: def foo(a, b): print (a - b) args = {'b': 7, 'a': 10} foo(**args) # prints 3 如何做ES6相同?這不起作用: function foo(a, b) { console.log(a - b) }

    6熱度

    1回答

    有了一個圖示,我們可以擴展的陣列爲多個參數,這些參數是直接傳遞數組相當不同: def foo(a, b = nil, c = nil) a end args = [1, 2, 3] foo(args) # Evaluates to foo([1, 2, 3]) => [1, 2, 3] foo(*args) # Evaluates to foo(1, 2, 3) => 1