Ruby字符串包括?两个或多个陈述

时间:2013-07-24 19:13:28

标签: ruby

我是编程初学者,从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 
这两个陈述都是真的吗?

2 个答案:

答案 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