加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ruby – 在一行上使用多个条件

发布时间:2020-12-17 01:51:03 所属栏目:百科 来源:网络整理
导读:所以,我遇到了这个问题,我希望在例程继续之前检查三个条件,但它不断抛出语法错误,说它不期望多个条件.现在,我知道我见过其他人使用如下行: if x 100 x % 2 == 1 #Do somethingend 但是,无论出于何种原因,这条线: if (letters.eql? letters.upcase dash.eql
所以,我遇到了这个问题,我希望在例程继续之前检查三个条件,但它不断抛出语法错误,说它不期望多个条件.现在,我知道我见过其他人使用如下行:

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)
...

解决方法

这应该这样做:

如果letters.eql?(letters.upcase)&& dash.eql?(‘ – ‘)&& numbers.to_i.to_s.eql?(数字)

如果您愿意,您仍然可以将整个条件包装在括号中,但是使用Ruby(与JavaScript不同),您不需要.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读