我是编程初学者,从ruby开始。现在我尝试搜索文档,看看是否包含患者。我用这段代码实现了这个任务:
@patients.each do |patient|
if document.include? patient.nachnahme || document.include? patient.vorname
arr << a
end
end
但不知怎的,我得到了错误:
syntax error, unexpected tIDENTIFIER, expecting keyword_then or ';' or '\n'
if document.include? patient.nachnahme || document.include? patient.vorname
那我错了什么?我如何定义我的ruby代码仅在以下情况下运行:
document.include? patient.nachnahme || document.include? patient.vorname
这两个陈述都是真的吗?
答案 0 :(得分:9)
您需要做的是将()
放在include?
来电。
document.include?(patient.nachnahme) || document.include?(patient.vorname)
当你执行双条件时,Ruby往往会有点困惑,因为从技术上讲,你可以调用没有()
的方法调用:
# Not what you are intending
document.include?(patient.nachnahme || document.include? patient.vorname)
答案 1 :(得分:3)
将其写为
if document.include? patient.nachnahme or document.include? patient.vorname
试图在这里重现这个问题:
"aaa".include? "a" or "bb".inlcude? "v"
# => true
"aaa".include? "a" || "bb".inlcude? "v"
# ~> -:2: syntax error, unexpected tSTRING_BEG, expecting ')'
# ~> ...include? "a" || "bb".inlcude? "v");$stderr.puts("!XMP1374693...
# ~> ...
注意强>
始终考虑使用和以及或运算符进行控制流操作。using-and-and-or-in-ruby