我试图在Ruby中迭代一个数组。我使用each
方法但收到以下错误消息:NoMethodError: undefined method ``each' for "1, 2":String
。
我正在使用jruby-1.6.7
。不确定这是不是问题。
以下是代码:
#!/usr/bin/ruby
puts "Select one of these.\n1. ABC\n2. DEF\n3. GHI\n"
schemas = gets.chomp
len = schemas.size
puts schemas.split(",")
puts schemas[0..len]
schemas.each {|x| puts x}
我需要一些指导,在Ruby中迭代一个简单的数组?
感谢。
答案 0 :(得分:1)
你走在正确的轨道上:
schemas = gets.chomp
# => "1, 2"
# save the result of split into an array
arr = schemas.split(",")
# => [1, 2]
# loop the array
arr.each { |schema| puts schema }
# => 1
# => 2
您也可以在一行中执行此操作,但阵列不会保存在任何位置。
schemas = gets.chomp
schemas.split(",").each { |schema| puts schema }
# => 1
# => 2
答案 1 :(得分:0)
您有正确的想法,但是您在 String 上调用Array#each
方法。
schemas = gets.chomp
puts schemas.split(",")
String#split
方法将字符串转换为数组是正确的,但是您实际上从未实际转换过数据类型。 schemas
仍被识别为字符串。
你能做的是
schemas = schemas.split(",")
然后
schemas.each{|x| puts x}