编写一个接受两个参数的函数,i)一个字符串(包含一个单词列表)和ii)一个整数(n)。该函数应根据每个单词的第n个字母按字母顺序排列。
我试过了
def sort_it(list_, n)
list_.sort_by {|name| name[n]}
end
但是说sort_by
无法识别。
有没有一种优雅的方法来解决这个问题?
答案 0 :(得分:4)
list_
是字符串,而sort_by
是Enumerable
的方法。您需要在排序之前将字符串转换为单词集合。一种方法是
list_.split
所以你的代码看起来像
def sort_it(list_, n)
list_.split.sort_by {|name| name[n]}
end
作为旁注,请勿在参数名称中使用尾随下划线。