ruby - 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
非常感谢
解决方案
!
并且?
是 Ruby 中方法名称的有效部分。它们没有任何特殊含义,但!
通常用于突变或破坏性动作,并且?
通常用于谓词方法。
在这个例子中,有两个方法被命名todo!
和waiting!
被调用——没有什么比这更好的了。如果我不得不猜测,这些方法只是执行组合的“更新状态变量并保存”操作(因此是可变的)。
推荐阅读
- fortran - 使用链接库访问模块内的子例程
- java - 黄瓜测试被忽略 - TestNG
- scala - 如何过滤不插入的选项?
- spring-boot - 如何在 Spring Boot 中使用 ControllerAdvice 获取完整的堆栈跟踪?
- python - Using lists in a pandas query
- hiveql - 无论如何将逗号分隔的字符串加载到配置单元中的单个列中?
- arrays - 如何将模拟结果的多个变量导出到 csv?
- shell - 重命名命令不评估表达式
- flutter - Flutter 模拟器 APK 包含所有 ABI
- php - 如何打开 csv 文件,逐行读取文件,base64_decode() 并将解码后的数据写入新文件?