ruby – 为什么分裂(”)试图(太)聪明?
我刚刚发现了String#split的以下奇怪行为:
"atb cnd".split => ["a","b","c","d"] "atb cnd".split(' ') => ["a","d"] "atb cnd".split(/ /) => ["atb","cnd"] The source(string.c from 2.0.0)超过200行,包含如下所示的段落: /* L 5909 */ else if (rb_enc_asciicompat(enc2) == 1) { if (RSTRING_LEN(spat) == 1 && RSTRING_PTR(spat)[0] == ' '){ split_type = awk; } } 后来,在awk split类型的代码中,实际参数甚至不再使用,并且与普通拆分相同. >有没有人觉得这有点破碎? 解决方法
它与Perl的split()行为一致.而这又基于
Gnu
awk ‘s split().所以这是源于Unix的悠久传统.
从perldoc分裂:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |