gpt4 book ai didi

ruby - Ruby 中括号内的空格有多重要?

转载 作者:数据小太阳 更新时间:2023-10-29 08:15:38 24 4
gpt4 key购买 nike

我刚刚发现括号内的空格在 Ruby 中以意想不到的方式发挥作用:以下是 3 个在语义上与我相同的函数:

def foo(x)
return {
:a => (x - 100),
}
end

def bar(x)
return {
:a => (x
- 100),
}
end

def zot(x)
return {
:a => (x -
100),
}
end

但是,foo(10)zot(10) 返回 {:a=>-90}(如我所料),而bar(10) 返回 {:a=>-100}(令我沮丧和失望)。

我在这里错过了什么?

最佳答案

这是一个不寻常的情况,但我相信您看到的是 Ruby 将其解释为多个连续语句,而不是单个语句。正如它所看到的那样:

x    # Statement 1
-100 # Statement 2

该代码块的结果是 -100

zot 的情况下,您已经通过悬空的 - 二元运算符表达了在下一行继续该行的意图:

x - # Statement 1
100 # Statement 1 (cont)

值得注意的是,在进行方法调用时不能这样做:

zot(x
-100 # Syntax error
)

在那种情况下,参数语法规则要严格得多。在自由形式的 (...) 结构中,您有更大的自由度。

关于ruby - Ruby 中括号内的空格有多重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56432834/

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