#ruby
#ruby
Вопрос:
Я ОЧЕНЬ новичок в Ruby, поэтому, пожалуйста, простите меня. Я создал метод funny_sort, который естественным образом сортирует массив, а затем возвращает новый массив,
def funny_sort(the_array)
the_array = new_array.each {|s| s.gsub /D/, ""}
the_array = new_string.each{|s| s.to_i}
the_array = new_string.sort_by{|s| s.gsub /D/, ""}
return the_array
end
w = ['app100le', 'car10rot', 'banana']
puts w.funny_sort
но когда я запускаю программу в командной строке с Ruby и Rails, я получаю следующую ошибку:
sort.rb:10in '<main>': private method 'funny_sort' called for ["app1001e", "carrot10", "banana"]:Array <NoMethodError>
Что я делаю не так?
Спасибо!
Ответ №1:
Вы пытаетесь вызвать его для массива, вместо того, чтобы передавать ему массив.
funny_sort w # Or with parens...
funny_sort(w)
Однако у вас может возникнуть другая проблема с этим new_array
и new_string
там, и я подозреваю, что это .each
возвращает не то, что, по вашему мнению, оно делает.