有时我需要指定一个永远不会使用的变量。例如:像/ 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