我開始學習Ruby。我通過引用方法讀取了參數,但是我不明白這兩種方法之間的區別。這兩個方法參數定義有什麼區別?
def print(text)
puts text
end
和
def print(*text)
puts text
end
使用*
意味着我們是用C語言指針傳遞什麼樣的?
我開始學習Ruby。我通過引用方法讀取了參數,但是我不明白這兩種方法之間的區別。這兩個方法參數定義有什麼區別?
def print(text)
puts text
end
和
def print(*text)
puts text
end
使用*
意味着我們是用C語言指針傳遞什麼樣的?
*文本在Ruby中被稱爲splat操作符。它基本上意味着,如果您將多個參數傳遞給第二個打印文件,它們將會變成單個文本變量。
在Ruby參數列表中的參數名稱用於variable length arguments之前的*
,因此它們類似於C/C++中的...
for varargs。
def vlaFunc(*args)
puts args
end
vlaFunc(1,2,3)
# output is [1,2,3]
有在紅寶石,*
沒有指針在這種情況下,通常被稱爲 「圖示」 操作符:
在這種情況下,該方法可以接受任意數量的參數,這些參數將可用在數組text
。
我寧願說在Ruby中只有*指針:-) – 2011-12-31 19:13:03
呵呵,可以這麼說,但也許不在Ruby新手線程中。 ;-) – 2012-01-01 01:50:11
首先你有兩個很好的方法在那裏開始。但我會說盡量避免在他們中使用放入。無論如何你都不需要它。一個方法總是會產生最後一個評估的語句。東西=文本將完成工作。我現在不需要回答這些差異。 你的前兩個回覆非常好。但你可能想嘗試一下這樣的東西 j = * []#=> 1.8中的零而1.9中的是[] 現在這個區塊已經是新的孩子了。猜猜它是幹什麼的?
好的非常感謝你。 – 2011-12-31 17:32:35