首页 > 解决方案 > Ruby:“variable.property”是什么意思!句法?

问题描述

我正在分析一段用 ruby​​ 编写的代码。我不懂语言,我需要了解操作。

def restore
  m = ObjectName.where(prop: User.where(email: 'admin@email.com').first.element_id).last
  m.todo!
  m.waiting!
  ...
end

什么“m.todo!” 和“m.waiting!” 是做?我无法理解它是否分配了“真实”值或与当前值相反的值,例如:m.todo = !m.todo

非常感谢

标签: rubysyntaxvariable-assignmentoperator-keyword

解决方案


!并且?是 Ruby 中方法名称的有效部分。它们没有任何特殊含义,但!通常用于突变或破坏性动作,并且?通常用于谓词方法。

在这个例子中,有两个方法被命名todo!waiting!被调用——没有什么比这更好的了。如果我不得不猜测,这些方法只是执行组合的“更新状态变量并保存”操作(因此是可变的)。


推荐阅读