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)
Проблема заключается в том, что я не могу показаться, Acces первого значения во всех массивах.
Где этот класс Лода войти в картину? В вашем описании говорится, что это массивы, а не объекты Lod. Действительно ли числа предназначены для того, чтобы быть объектами Лода или что? – Chuck
К сожалению, внутренние массивы являются объектами Lod, импортированными из текстового файла: input = File.open ("lodsedler.txt", "r") \t input.each do | line | \t \t л = line.split ('') \t \t, если л [0] .to_i.between? (0, 99999) && л [1] .to_i.between? (1, 180) && л [2 ] .to_i.between? (1, 10) \t \t \t $ продано << Lod.new (л [0], L [1], L [2]) \t \t еще \t \t \t следующая \t \t end – Christian