我仍然是一个红宝石新手,我正在尝试学习如何准确地使用该inject
方法。
通过使用该inject
方法,我试图返回一个字母数组及其在给定字符串中的外观,如下所示:
def sorting(str)
str.split("").uniq.map { |letter|
[letter, str.split("").inject(0) { |sum, char| sum + 1 if letter == char }]
}
end
p sorting("aaabdbbcccaaabcacba")
期望的结果应该是:
[["a", 8], ["b", 5], ["d", 1], ["c", 5]]
不幸的是,我收到一个错误:undefined method '+' for nil:NilClass
.
我做错了什么,我该如何使用inject
它的总和优势来解决它?