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

Ruby中的/ \u0026\u0026的运算符优先级

发布时间:2020-12-16 20:20:11 所属栏目:百科 来源:网络整理
导读:参见英文答案 Difference between “and” and in Ruby?6 我有一个关于Ruby中的 / =关键字的问题. 红宝石文件说,提到的关键字的优先级是:(1)(2)=,(3)和. 我有这段代码片段: def f(n) nendif a = f(2) and b = f(4) then puts "1) #{a} #{b}" endif a = f(2
参见英文答案 > Difference between “and” and && in Ruby?6
我有一个关于Ruby中的&& / =关键字的问题.

红宝石文件说,提到的关键字的优先级是:(1)&&(2)=,(3)和.

我有这段代码片段:

def f(n) 
 n
end

if a = f(2) and  b = f(4) then  
    puts "1) #{a} #{b}" 
 end

if a = f(2) &&  b = f(4) then   
    puts "2) #{a} #{b}"     
end

输出为:

1)2 4 [预计]

2)4 4 [为什么]

由于某些原因使用&&导致a和b评估为4?

解决方法

我不太明白你问的问题.我的意思是你自己已经给出了答案,甚至提出了这个问题:&&绑定比=更紧,而且比

因此,在第一种情况下,表达式如下评估:

( a=f(2) )  and  ( b=f(4) )
( a=  2  )  and  ( b=f(4) )
      2     and  ( b=f(4) ) # a=2
      2     and  ( b=  4  ) # a=2
      2     and        4    # a=2; b=4
                       4    # a=2; b=4

在第二种情况下,评估如下:

a   =   (  f(2) && ( b=f(4) )  )
a   =   (    2  && ( b=f(4) )  )
a   =   (    2  && ( b=  4  )  )
a   =   (    2  &&       4     ) # b=4
a   =                    4       # b=4
                         4       # b=4; a=4

(编辑:李大同)

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

    推荐文章
      热点阅读