我很困惑为什么我使用'&&'时出现语法错误当在程序可以继续之前组合两个应该为真的条件时。我是ruby的新手,并且没有机会亲自编写一个完整的程序。 我只是更新一个旧程序,并通过任何类似于我需要更新它的代码进行跟踪。
这是我的代码:
def drug_dispensation_condition(charge)
return true if ['250','251'].include? charge[:rev_code]
return true if ['981262'].include? charge[:cdm_code]
return true if ['300'].include? charge[:rev_code] && ['86580'].include? charge[:cdm_code] #this line is inserted
false
end
这是我的错误消息:
语法错误,意外的tIDENTIFIER,期待keyword_end (syntaxerror)... e]&& [ '86580']。包括?电荷[:cdm_code]
我添加了第3个“return true”子句以包含rev_code 300和cdm_code 86580。 我需要rev_code 300和cdm_code 86580来声明该语句为True,所以我需要添加“&&”在他们之间。它似乎是在“充电[:rev_code]”而不是第二个条件之后期待“结束”。
有没有其他方法对此进行编码以避免语法错误?
答案 0 :(得分:2)
因为这是一个单行的声明,包装包含?括号中的参数:
return true if ['300'].include?(charge[:rev_code]) && ['86580'].include?(charge[:cdm_code])
我认为你可以让它更具可读性:
def drug_dispensation_condition(charge)
if ['250', '251', '300'].include?(charge[:rev_code]) ||
['981262', '86580'].include?(charge[:cdm_code])
return true
end
false
end