相关疑难解决方法(0)

官方扩展|| =条件赋值运算符

我想强调,我在寻找实际的方式||=操作由红宝石1.9.3解释,它不是如何扩大出现基于其行为进行扩展.我真正希望的是那些已经找到了实际翻译来源的人,这是我可能不满意的任务.我已经发现了一种审查这个问题的唯一资源是过时的:" 甲短路(|| =)边缘情况 ".

我上面提到的资源似乎表明的"官方"扩展x ||= yx = x || y前1.9在翻译版本或者不准确或马车.在任何情况下,指示的边缘情况似乎已经平滑.上述资源声称x || x = yx or x = y"更准确".但是,这两者都不正确,因为它们在x以前未声明的全局变量时不起作用:

[11:04:18][****@asha:~]$ irb
1.9.3-p194 :001 > a || a = 3
    NameError: undefined local variable or method `a' for main:Object
1.9.3-p194 :002 > b or b = 3
    NameError: undefined local variable or method `b' for main:Object
1.9.3-p194 :003 > c = c || 3
    => …
Run Code Online (Sandbox Code Playgroud)

ruby

6
推荐指数
1
解决办法
2950
查看次数

标签 统计

ruby ×1