我对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在Command提示符下运行程序时,我收到以下错误:
sort.rb:10in '<main>': private method 'funny_sort' called for ["app1001e", "carrot10", "banana"]:Array <NoMethodError>
我做错了什么?
谢谢!
答案 0 :(得分:2)
你试图在数组上调用它,而不是传递数组。
funny_sort w # Or with parens...
funny_sort(w)
但是,您可能在其中遇到new_array
和new_string
的其他问题,我怀疑.each
不会返回您认为它的内容。