0
如何开始在红宝石产卵,传递它的参数? 我想是这样的:产卵与红宝石参数
validators_pid << spawn(RbConfig.ruby, "#{Dir.pwd}/../lib/validator.rb", 3, 5)
在validator.rb
puts ARGV.length
总是输出0
如何开始在红宝石产卵,传递它的参数? 我想是这样的:产卵与红宝石参数
validators_pid << spawn(RbConfig.ruby, "#{Dir.pwd}/../lib/validator.rb", 3, 5)
在validator.rb
puts ARGV.length
总是输出0
你在一些奇怪的操作系统或一个疯狂的红宝石版本上运行?
如果你看看红宝石文档,这些都是例子:
pid = spawn("tar xf ruby-2.0.0-p195.tar.bz2")
Process.wait pid
pid = spawn(RbConfig.ruby, "-eputs'Hello, world!'")
Process.wait pid
最后一个例子是可以改变的做你的示例代码做什么。
我跑了它在IRB会议:
irb(main):011:0> pid = spawn(RbConfig.ruby, "-eputs ARGV.length", '1', '2', '3')
=> 84399
irb(main):012:0> 3
原因是疏忽。在根进程中,我没有注意到需要这个“验证器”文件,并且在没有任何参数的情况下连接它时执行。也就是说,错误不会出现在我认为的地方 –
什么是应该是值3和5,因为目前你的代码给我一个错误 - >类型错误:整型的隐式转换成字符串 – grail
@即使它们是字符串,圣杯参数也必须是数字 –
,我可以将它们放在验证程序中.to_i –