2011-08-01 2 views
1

Я читаю данные из файла XML, а затем преобразовываю данные из строк в целые числа, но когда я пытаюсь обработать данные, Ruby утверждает, что объекты имеют тип String. Это не имеет смысла для меня, потому что я конвертирую все элементы в тип integer.Ruby Type question

#converts the string data array to an integer array 
def self.barify_data(data) 
    data.each{ |i| i.to_i() } 
end 

data = BarChart.barify_data(data) 
data.each {|d| puts d.class } 

Это выходы:

String 
String 
String 
String 
String 
String 
String 
String 
String 
String 
String 
String 
String 

Может кто-нибудь сказать мне, почему разве преобразование происходит?

Спасибо.

ответ

8

Метод #each запускает блок для каждого элемента, но возвращает исходный элемент.

Возможно, вы ищете #map

+0

спасибо, я знал, что это что-то простое .; но я не мог понять это. –

+0

В частности, метод «Перечислимый # map!». – Swanand

+0

OP возвращает измененный массив и переназначает его на данные. #map будет в порядке. –