【发布时间】:2013-11-26 01:04:37
【问题描述】:
class Lod
attr_accessor :lodnr
attr_accessor :lobnr
attr_accessor :stknr
def initialize(lodnr, lobnr, stknr)
@lodnr = lodnr
@lobnr = lobnr
@stknr = stknr.chomp
end
def to_s
"%8s, %5s, %3s" % [@lodnr, @lobnr, @stknr]
end
end
我有一个名为sold 的数组,其中包含这四个数组:
[10000, 150, 5]
[500, 10, 1]
[8000, 171, 3]
[45, 92, 4]
四个数组是一个类的对象,从 .txt 文件导入。
input = File.open("lodsedler.txt", "r")
input.each do |line|
l = line.split(',')
if l[0].to_i.between?(0, 99999) && l[1].to_i.between?(1, 180) && l[2].to_i.between?(1, 10)
sold << Lod.new(l[0], l[1], l[2])
else
next
end
end
我想计算每个数组中的第一个值,寻找存储在first 中的随机选择的数字。
无论我尝试什么,我得到的错误总是这样的:
Undefined method xxx for #Lod:0x0000000022e2d48> (NoMethodError)
问题是我似乎无法访问所有数组中的第一个值。
【问题讨论】:
-
这个 Lod 类在哪里出现?您的描述说这些是数组,而不是 Lod 对象。这些数字实际上是 Lod 对象还是什么?
-
抱歉,内部数组是从文本文件导入的 Lod 对象: input = File.open("lodsedler.txt", "r") input.each do |line| l = line.split(',') if l[0].to_i.between?(0, 99999) && l[1].to_i.between?(1, 180) && l[2].to_i.between? (1, 10) $sold
标签: ruby arrays for-loop multidimensional-array