有時我需要指定一個永遠不會使用的變量。例如:像/ dev/null這樣的變量是否存在ruby
stdin, stdout, status = Open3.capture3("ls ./dir")
在這種情況下,我只在stdout
興趣,所以我不需要stdin
和status
。您好我可以阻止未使用的變量的賦值在這種情況下>
我應該做這樣的事情?:
null, stdout, null = Open3.capture3("ls ./dir")
感謝。
有時我需要指定一個永遠不會使用的變量。例如:像/ dev/null這樣的變量是否存在ruby
stdin, stdout, status = Open3.capture3("ls ./dir")
在這種情況下,我只在stdout
興趣,所以我不需要stdin
和status
。您好我可以阻止未使用的變量的賦值在這種情況下>
我應該做這樣的事情?:
null, stdout, null = Open3.capture3("ls ./dir")
感謝。
下劃線在這樣的情況下通常使用
_, stdout, _ = Open3.capture3("ls ./dir")
這個SO問題有更多關於_作爲變量使用的信息:http ://stackoverflow.com/questions/9559561/where-and-how-is-the-underscore-variable-specified –
這是真的,但我不知道我在找'_'。 – mipmip
像這樣:
_, stdout, _ = Open3.capture3("ls ./dir")
Open3.capture3
返回Array
一個實例。你可以用解構並把它當作一個元組,(這是常見的),或者你可以把結果作爲一個實際的數組:
stdout = Open3.capture3("ls ./dir")[1]
這不是地道。
Rubocop suggests前述未使用的變量名與在多個賦值_
:
_stdin, stdout, _status = Open3.capture3("ls ./dir")
NB:如上所述通過@Stefan所指出的,通過返回capture3
第二流實際上是stderr
。
請注意'capture3'返回stdout,stderr和狀態。 – Stefan
謝謝,從http://blog.honeybadger.io/capturing-stdout-stderr-from-shell-commands-via-ruby/借用了代碼 – mipmip