新手问题 为什么 Ruby 里的 String 没有 include Enumerable ?

miao · 2020年03月03日 · 最后由 miao 回复于 2020年03月05日 · 2345 次阅读

既然 String 有 each_char 方法,那么如果有一个相同功能的 each 方法,那么就可以 include Enumerable 了呀,站里搜索了一下,这个贴里有一些讨论 https://ruby-china.org/topics/7835, 提到因为 Ruby 里没有 char 类型。 但我想不管每个 char 到底是一个字节还是一个有意义的字符,只要能遍历出来不就完事儿了。

如果你觉得这对你有意义, 完全可以自己给 String 类加个 each 方法, 然后 include Enumerable 啊。反正在我使用字符串的时候, 从来没想过要对它进行 map 或者 find_all 这种操作的。

each_chareach_byte 就是把 String 转换成 Enumerable 同时保证没有歧义,有歧义的地方就会产生坑,有坑的地方踩进去可能就捅出大篓子,所以不能让 String 自身有 Enumerable

jasl 回复

有道理。

miao 关闭了讨论 03月05日 11:01
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册