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

miao · March 03, 2020 · Last by miao replied at March 05, 2020 · 2542 hits

既然 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

Reply to jasl

有道理。

miao closed this topic. 05 Mar 11:01
You need to Sign in before reply, if you don't have an account, please Sign up first.