所以,我遇到了这个问题,我希望在例程继续之前检查三个条件,但它会一直抛出语法错误,表示它并不期望多个条件。现在,我知道我见过别人用线,如:红宝石 - 在一条线上使用多个条件
if x > 100 && x % 2 == 1
#Do something
end
但是,不管是什么原因,这条线:
if (letters.eql? letters.upcase && dash.eql? '-' && numbers.to_i.to_s.eql? numbers)
被投掷的错误吨。这与'.eql?'有关吗?或者对于我还没有遇到过的Ruby而言,这是多余的?
下面的代码作参考休息:
print "Enter license plate: ";
input = gets.strip;
if input.length == 8
letters = input[0,2];
dash = input[3];
numbers = input[4,7];
if (letters.eql? letters.upcase && dash.eql? '-' && numbers.to_i.to_s.eql? numbers)
puts "#{input} is a valid license plate."
else
print "All valid license plates are three (3) uppercase letters, followed by a dash (-), followed by four (4) digits";
end
else
print "All valid license plates are 8 characters long.";
end
而且,这些都是错误的:
LicensePlate.rb:7: syntax error, unexpected tSTRING_BEG, expecting ')'
...? letters.upcase && dash.eql? '-' && numbers.to_i.to_s.eql? ...
... ^
LicensePlate.rb:7: syntax error, unexpected tIDENTIFIER, expecting ')'
... numbers.to_i.to_s.eql? numbers)
...
你得到了什么错误? – ivan
使用括号'letters.eql?(letters.upcase)&& dash.eql?(' - ')&& numbers.to_i.to_s.eql?(numbers)'现在它试图查看是否有'letters ==(letters .upcase && dash ==(' - '&& numbers.to_i.to_s.eql?numbers))' – engineersmnky
@lurker在Ruby中调用方法时,优先级如何影响括号的必要性? –