我想知道它的真正含义以及如何正确使用它。
另一个问题是关于我看到的断言
assert product.valid? product.errors.full_messages
和
assert product.valid?
但是我找不到那些断言的语法断言(product.errors.full_messages)的第二个arg是什么意思,或者它是arg for?
由于
答案 0 :(得分:11)
Ruby使用特定的方法命名约定。它允许您快速识别他们可能具有的副作用,或返回类型..
这些约定在方法名称的末尾使用特殊标记,例如“!”和“?”。这种情况并不常见,因为大多数编程语言都倾向于在标识符中禁止使用这些字符,但尽管如此,它确实是方法名称的一部分。 (不应与运营商混淆)
请注意,这些只是约定。绝不会必须关注它,但 被认为是一种很好的做法。
答案 1 :(得分:3)
这纯粹是一种惯例,没有正式的含义。人们对此感到困惑并不罕见,因为许多(大多数?)语言不允许这样的字符?而且!在标识符中。
答案 2 :(得分:1)
将它放在一个返回布尔值afaik的方法上就是惯例。而不是制造每一个IsSomething。