代码之家  ›  专栏  ›  技术社区  ›  sarunw

“什么?”“红宝石的意思是?

  •  3
  • sarunw  · 技术社区  · 16 年前

    我想知道它的真正意义,以及如何准确地使用它。

    另一个问题是我看到的断言

    assert product.valid? product.errors.full_messages

    assert product.valid?
    

    但是我找不到这些assert的语法,assert的第二个arg(product.errors.full\u messages)是什么意思,或者它是arg的意思?

    谢谢

    3 回复  |  直到 16 年前
        1
  •  11
  •   NewbiZ    16 年前

    Ruby对方法使用特定的命名约定。它允许您快速识别它们可能产生的副作用或返回类型。

    这些约定使用特殊的标记,例如“ ! “和” 是吗? “在方法名称的末尾。这是不常见的,因为大多数编程语言倾向于在标识符中禁止这样的字符,但是,它确实是方法名的一部分。(不应与操作员混淆)

    • “后固定” ? “表示该方法返回布尔值。这是替换“is”前缀的方便方法。(这种习惯也往往存在于Lisp方言中)
    • “后固定” ! “表示该方法将修改实例,因此不会对副本执行操作/返回副本。

    注意,这些只是惯例。绝不是你 不得不 跟着它走,但它 被认为是一种良好的做法。

        2
  •  3
  •   JesperE    16 年前

    它纯粹是一种惯例,没有正式意义。人们对此感到困惑并不罕见,因为很多人(大多数?)。语言不允许像这样的字符?而且!在标识符中。

        3
  •  1
  •   Steven Robbins    16 年前

    把它放在一个返回布尔值afaik的方法上是惯例。而不是让一切都变得有意义。

    推荐文章