既然 String 有 each_char 方法,那么如果有一个相同功能的 each 方法,那么就可以 include Enumerable 了呀,站里搜索了一下,这个贴里有一些讨论 https://ruby-china.org/topics/7835,提到因为 Ruby 里没有 char 类型。但我想不管每个 char 到底是一个字节还是一个有意义的字符,只要能遍历出来不就完事儿了。
如果你觉得这对你有意义,完全可以自己给 String 类加个 each 方法,然后 include Enumerable 啊。反正在我使用字符串的时候,从来没想过要对它进行 map 或者 find_all 这种操作的。
each_char 和 each_byte 就是把 String 转换成 Enumerable 同时保证没有歧义,有歧义的地方就会产生坑,有坑的地方踩进去可能就捅出大篓子,所以不能让 String 自身有 Enumerable
each_char
each_byte
String
Enumerable
有道理。