论坛首页 编程语言技术论坛

+= 方法 与 concat 方法的比较

浏览 7051 次
精华帖 (0) :: 良好帖 (3) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-02-25  
sevk 写道
是不是说 += 方法 是多余的呢?
奇怪,为什么不把 += 的内部现实做成 << 这样呢?

字符串在一般编程语言里,是被设计为immutable的。
Ruby的 + 号也许是为了跟其他语言的表现一致而已。

对于<<运算,如果一个人修改了别人认为(无论是否是错误地认为)是immutable的东西,容易产生错误。这个运算符要所以要谨慎对待。
0 请登录后投票
   发表时间:2010-02-25  
哦,基本了解了,多谢,同时也发现了一本好书: Ruby Hacking Guide
0 请登录后投票
   发表时间:2010-02-25  
<< 这符号用得比较少
追加字符串的话一般用StringBuffer还是比较好
0 请登录后投票
   发表时间:2010-02-25  
zhangygood 写道
<< 这符号用得比较少
追加字符串的话一般用StringBuffer还是比较好

请问Ruby里StringBuffer类是标准库里的类型吗?文档里没找到
0 请登录后投票
   发表时间:2010-02-26  
Xorcerer 写道
sevk 写道
是不是说 += 方法 是多余的呢?
奇怪,为什么不把 += 的内部现实做成 << 这样呢?

字符串在一般编程语言里,是被设计为immutable的。
Ruby的 + 号也许是为了跟其他语言的表现一致而已。

对于<<运算,如果一个人修改了别人认为(无论是否是错误地认为)是immutable的东西,容易产生错误。这个运算符要所以要谨慎对待。


Ruby 没有 String、StringBuffer、StringBuilder、byte[] 的区分,通通都是 String。 << 相当于 StringBuffer 的 append 方法而已。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics