Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Ruby中的/ \u0026\u0026的运算符优先级大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > 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

大佬总结

以上是大佬教程为你收集整理的Ruby中的/ \u0026\u0026的运算符优先级全部内容,希望文章能够帮你解决Ruby中的/ \u0026\u0026的运算符优先级所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。