gpt4 book ai didi

ruby - 为什么单词中的析取和连词需要括号?

转载 作者:数据小太阳 更新时间:2023-10-29 07:59:49 26 4
gpt4 key购买 nike

参数位置的单词(orand)的分离和连接需要额外的括号,而不是|| &&

def foo _; end

foo(1 || 2) # => Good
foo(1 or 2) # => Syntax error
foo((1 or 2)) # => Good

foo(1 && 2) # => Good
foo(1 and 2) # => Syntax error
foo((1 and 2)) # => Good

为什么他们需要额外的括号?

最佳答案

我认为这是因为逻辑组合运算符 andor 具有较低的 precedence而不是方法的参数列表,因此当找不到另一个列表参数或括号时,解析器将失败。

另一方面,逻辑运算符 &&|| 具有更高的优先级,因此它们的参数会被更快地求值,然后表达式的结果作为参数传递给方法。

独立的括号改变了关联性,所以 foo (1 or 2) 确实有效并且 1 作为结果传递给 foo 方法。

关于ruby - 为什么单词中的析取和连词需要括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25149478/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com