我在尋找一個紅寶石方法如何使用圖示作爲Ruby方法參數
def test(*)
puts "hello"
end
我感到困惑的*。很明顯,如果我運行測試,它會返回「你好」。但如果我傳遞一個參數到測試...
test("this argument")
如何調用測試方法內的方法,但仍然有飛濺?我只是對沒有名字的飛濺感到困惑。它是如何工作的?
我在尋找一個紅寶石方法如何使用圖示作爲Ruby方法參數
def test(*)
puts "hello"
end
我感到困惑的*。很明顯,如果我運行測試,它會返回「你好」。但如果我傳遞一個參數到測試...
test("this argument")
如何調用測試方法內的方法,但仍然有飛濺?我只是對沒有名字的飛濺感到困惑。它是如何工作的?
這個帖子有一個相當詳細的低水平解釋:http://blog.honeybadger.io/ruby-splat-array-manipulation-destructuring/
引述最相關的部分:
def go(x, *args, y)
puts x # => 1
puts y # => 5
puts args.inspect # => [2,3,4]
end
go(1, 2, 3, 4, 5)
這可能幫助:http://stackoverflow.com/questions/5249537/naked- asterisk-as-parameter-in-method-definition-def-f – orde
@orde謝謝。但是我想知道的是我怎樣才能調用傳遞給方法的參數。那麼我需要將它定義爲'def test(* args)'嗎? – jason328
我會說實話:第一次看到裸體摔跤運營商。但是 - 如果你做了像'def foo(* args)提出參數; - 然後方法參數被收集到一個'args'數組中,你可以做'foo(1,2)#=> 1 2'。 – orde