pan*_*chk 9 ruby naming-conventions
在Ruby中,带有副作用的方法或改变作为参数传递的对象的方法都有"!" 作为后缀.
例如:
"SomeString".gsub!(/S/, "s")
将更改String对象,同时
"SomeString".gsub(/S/, "s")
将处理String对象的副本,并且不会更改方法之外的任何对象的状态.
我喜欢这个约定,我也想在用其他语言编程时使用它.
我的问题:
Bang方法并不意味着"改变接收器".
http://www.wobblini.net/bang.txt
正如你所看到的,Matz的意思是"比没有感叹号的版本更危险".只是一个普通的FYI,看到目前为止大多数答案提到改变接收器.