我正在读一些关于ruby编程语言的书,想知道这样的东西是如何工作的
class String
def word_count
frequencies = Hash.new(0)
downcase.scan(/\w+/) { |word| frequencies[word] += 1 }
return frequencies
end
end
我知道有一个内置字符串,我来自(C++)btw,所以创建
class string
定义对象时会产生歧义
string x = new string()
,我搜索了一下,发现了一个叫做
refinement
允许我们修改和添加函数
String
类,我看到它们使用关键字
refine
(根据文档),但我的问题来了,当我把上面的课程放在
irb
然后开始这样测试
"amr adel".word_count
,它给了我一个正确的结果,我原本以为不会起作用,所以如果它起作用,为什么我甚至可以使用
精炼
在我的代码中,为什么我不只创建一个与内置类同名的类,并放置额外的函数和修改函数,这是隐式地执行优化过程吗?
我承认ruby很棒,很容易相处,但我想知道事情的进展。
如果您能参考一些文章或其他内容,我们将不胜感激
谢谢