Ruby ruby 错误

guaishushu · 2012年05月03日 · 最后由 test026 回复于 2012年05月04日 · 3596 次阅读
name = ARGV
puts "Hello #{name}, how old r u?"
age = gets.chomp().to_i;
if age <= 18
  puts "Hi, boy."
elsif age >= 18 and age <=40
  pus "Hi, the yong man"
else
  puts "Hello, the old man"
end


第一个问题 为什么 输出 Hello ["ding"], how old r u? 回家 [""] 呢? 然后 ruby 会报错 from ex13.rb:10:in gets' from ex13.rb:10:in'

我现在看的是 The hard way Exercise 13: Parameters, Unpacking, Variables 我感觉我问的问题太初级了 我是先看 hard way 呢 还是需要买本书系统学习一下 谢谢


测试了一下 发现当 ARGV 只有一个变量的时候 会出现 [""], 多个的话就不会出现 还有 ARGV 的时候 gets 会出错 这时为什么呢

试试

age = STDIN.gets.chomp().to_i

关于 [""] 引号的问题不太明白... 是 windows 嘛?

还有为什么>=18 的都是 boy... 写反了吧...

不太明白你想做什么?ARGV 是实参的数组 ruby xxx.rb a b ARGV[0] # => "a" ARGV[1] # => "b"

name = ARGV[0]
puts "Hello #{name}, how old r u?"
age = ARGV[1].to_i
if age < 18
puts "Hi, boy."
elsif age >= 18 and age <=40
puts "Hi, the yong man"
else
puts "Hello, the old man"
end

#1 楼 @leozwa 第一个是写反了 谢谢 mac

#2 楼 @ltl3884 我就是看 hard way 上面的随便写一个小练习 然后遇到了上面的问题 如果这样写 name = ARGV.first name 是不会加 [''] 如果 name, hi = ARGV 这样写也是不加 [''] 的 name = ARGV 这样写会加 [''] 也搞的我有点晕 ~.~ 谢谢

ARGV 是个数组,name = ARGV, name 也是数组

#5 楼 @test026 喔 酱紫啊 这就明白了 谢谢谢谢

需要 登录 后方可回复, 如果你还没有账号请 注册新账号