0

我在用:

  • ruby 2.2.4p230(2015-12-16 修订版 53155)[x64-mingw32]
  • 记事本++
  • Windows 上的 PowerShell v. 1.0

当我在 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 从下一个练习中复制代码,但我遇到了同样的错误。

我很想继续前进,但如果它不起作用,我将被困在这本书或下一本书中。感谢您的时间!

4

1 回答 1

1

我认为您的问题是您没有命令行调用中提供脚本参数。ARGV 的重点是在命令行中调用带有参数的脚本,以便脚本可以使用参数。您可以在此处找到有关 ARGV 的更多信息:Ruby 中 ARGV 的意义何在?

在 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
于 2016-05-12T07:52:58.257 回答