我正在使用:
当我在PowerShell中运行以下代码时:
first, second, third = ARGV
puts "Your first variable is: #{first}"
puts "Your second variable is: #{second}"
puts "Your third variable is: #{third}"
我明白了:
Your first variable is:
Your second variable is:
Your third variable is:
我尝试使用ARGV复制下一个练习中的代码,并且我得到了同样的错误。
我很乐意继续前进,但如果它不起作用,我会被困在这本书或下一本书中。 谢谢你的时间!
答案 0 :(得分:1)
我认为您的问题是您在命令行调用中执行了 NOT 脚本参数。 ARGV的重点是在命令行中使用参数调用脚本,以便脚本可以使用这些参数。你可以在这里找到更多关于ARGV的信息:What's the point of ARGV in Ruby?
在ubuntu中运行时,我得到了一个好结果:
$ ruby file.rb foo bar baz
Your first variable is: foo
Your second variable is: bar
Your third variable is: baz
所以,我的解决方案是在powershell中使用参数执行脚本(因为否则它们是空的,给出你得到的结果):
ruby your_file.rb foo bar baz
有关信息,我的Ubuntu版本(您的脚本完美运行)是:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.4 LTS
Release: 14.04
Codename: trusty