代码'////'.split('/')
导致[]
.虽然我期待它['', '', '', '', '']
.如果这是红宝石的一个特征,为什么这样设计呢?
您不能通过分隔符拆分分隔符字符串.
您应该将limit作为第二个参数传递给split函数以实现此行为
'////'.split('/',-1) => ["", "", "", "", ""]
如果省略limit参数,则禁止尾随空字段.如果limit是正数,则最多将返回该字段数(如果limit为1,则整个字符串将作为数组中的唯一条目返回).如果为负数,则返回的字段数没有限制,并且不会抑制尾随空字段
对split
方法行为的研究表明它是优化的结果,它简单地在最后一次匹配后裁剪出空数组元素,如下所示:
'////'.split('/') => [] '//a//'.split('/') => ["", "", "a"]