Непонятно, что вы пытаетесь сделать. У вас нет «линии», у вас есть элемент из массива, который является целым значением. Split
— это метод, определенный на String.
DATA = [3, 4, 5, 6, 7, 8]
DATA.each do |val|
print val
end
Теперь причина, по которой вы получаете это запутанное сообщение об ошибке, немного интересна. Так случилось, что есть Kernel#split
, который позволяет краткости в Perl для скриптов. Он разбивает глобальную переменную $_
, которая содержит последний результат из gets
.
>> gets
how now brown cow
=> "how now brown cow\n"
>> split ' '
=> ["how", "now", "brown", "cow"]
>> puts $_
how now brown cow
Но будучи смешанным с Object, чтобы он был доступен на уровне сценария, остается проблема, заключающаяся в том, что каждый отдельный класс, когда-либо созданный, имеет метод #split
.
Если вы запустите старый добрый split(), каждый объект в системе ответит, но, к счастью, только с ошибкой.
Делая его методом private, он доступен на верхнем уровне для скриптов (поскольку "Object" открыт или что-то в этом роде), но не становится частью API каждого отдельного экземпляра объекта.
person
DigitalRoss
schedule
17.04.2011