锁定老帖子 主题:+= 方法 与 concat 方法的比较
精华帖 (0) :: 良好帖 (3) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-02-25
sevk 写道 是不是说 += 方法 是多余的呢?
奇怪,为什么不把 += 的内部现实做成 << 这样呢? 字符串在一般编程语言里,是被设计为immutable的。 Ruby的 + 号也许是为了跟其他语言的表现一致而已。 对于<<运算,如果一个人修改了别人认为(无论是否是错误地认为)是immutable的东西,容易产生错误。这个运算符要所以要谨慎对待。 |
|
返回顶楼 | |
发表时间:2010-02-25
哦,基本了解了,多谢,同时也发现了一本好书: Ruby Hacking Guide
|
|
返回顶楼 | |
发表时间:2010-02-25
<< 这符号用得比较少
追加字符串的话一般用StringBuffer还是比较好 |
|
返回顶楼 | |
发表时间:2010-02-25
zhangygood 写道 << 这符号用得比较少 追加字符串的话一般用StringBuffer还是比较好 请问Ruby里StringBuffer类是标准库里的类型吗?文档里没找到 |
|
返回顶楼 | |
发表时间:2010-02-26
Xorcerer 写道 sevk 写道 是不是说 += 方法 是多余的呢?
奇怪,为什么不把 += 的内部现实做成 << 这样呢? 字符串在一般编程语言里,是被设计为immutable的。 Ruby的 + 号也许是为了跟其他语言的表现一致而已。 对于<<运算,如果一个人修改了别人认为(无论是否是错误地认为)是immutable的东西,容易产生错误。这个运算符要所以要谨慎对待。 Ruby 没有 String、StringBuffer、StringBuilder、byte[] 的区分,通通都是 String。 << 相当于 StringBuffer 的 append 方法而已。 |
|
返回顶楼 | |