gpt4 book ai didi

ruby-on-rails - Ruby showel 运算符 vs (? :) conditional

转载 作者:行者123 更新时间:2023-12-04 00:57:34 24 4
gpt4 key购买 nike

我有以下代码:

@ids = []
x = 'a'
@ids << x == 'a' ? [1,2] : [3,4]
@ids

我希望在下一行中 @ids 的值应该是@ids = [1,2],但我得到了 @ids = ['a']

为什么?

最佳答案

操作按优先顺序执行。相关代码行中的操作按以下顺序执行:

  1. <<
  2. ==
  3. ?, :

查看完整列表 Ruby's operation precedence.

此处,括号表示您的示例中实际发生的情况:

(((@ids << x) == 'a') ? [1,2] : [3,4])
^^^----1----^ ^ ^
||---------2--------| |
|------------------3-----------------|

要得到你期望的结果,写

@ids << (x == 'a' ? [1,2] : [3,4])

@ids.push(x == 'a' ? [1,2] : [3,4])

希望对您有所帮助。

关于ruby-on-rails - Ruby showel 运算符 vs (? :) conditional,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61216381/

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