在 Ruby 中,有些方法带有问号(?
)问这样的问题include?
询问是否包含有问题的对象,然后返回 true/false。
但为什么有些方法带有感叹号(!
)其他人没有的地方?
这是什么意思?
一般来说,以以下结尾的方法!
表明该方法将修改它所调用的对象。 Ruby 将这些称为“危险的方法“因为它们改变了其他人可能引用的状态。这是一个简单的字符串示例:
foo = "A STRING" # a string called foo
foo.downcase! # modifies foo itself
puts foo # prints modified foo
这将输出:
a string
在标准库中,有很多地方您会看到成对的类似命名的方法,其中一个带有!
和一个没有。没有的方法称为“安全方法”,它们返回原始方法的副本,并将更改应用于the copy,被调用者不变。这是没有的相同示例!
:
foo = "A STRING" # a string called foo
bar = foo.downcase # doesn't modify foo; returns a modified string
puts foo # prints unchanged foo
puts bar # prints newly created bar
这输出:
A STRING
a string
请记住,这只是一个约定,但许多 Ruby 类都遵循它。它还可以帮助您跟踪代码中修改的内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)