["1", "2", "3"] 两者给出相-6ren">
gpt4 book ai didi

ruby -//和 ''之间的区别

转载 作者:数据小太阳 更新时间:2023-10-29 07:48:13 25 4
gpt4 key购买 nike

  1. 这里的//''有什么区别?

    123.to_s.split(//)  #=> ["1", "2", "3"]
    123.to_s.split('') #=> ["1", "2", "3"]

    两者给出相同的结果。

  2. 什么是//

最佳答案

Q1:'' 是一个空字符串,而 // 是一个空的 Regexp:

2.0.0p247 :001 > ''.class
# => String

2.0.0p247 :002 > //.class
# => Regexp

String#split 在决定分割依据时恰好同时接受 Strings 和 Regexp 对象。因为将空字符串添加到字符串不会更改字符串,所以可以将字符串视为 '1' + '' + '2' + '' + '3'。因此,对空字符串进行拆分会将原始字符串拆分为单个字符。

类似地,空正则表达式匹配字符旁边的任何位置,因此 split 在这种情况下也会对每个字符进行拆分。这就是为什么他们有相同的结果。

Q2 我想不出空 Regexp 有多少(任何?)用途 :)

编辑:@sawa 是正确的。谦虚更新。

关于ruby -//和 ''之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17539411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com