ruby中表达式`?value1:value2`的对应部分是什么?

时间:2012-11-22 05:42:14

标签: ruby

我想知道Ruby在这种表达方式中的对应关系:

var status=false;
var xx=new Obj(xx,status?"0":"1",status?"2":"3");

我在Ruby中尝试过相同的操作,但似乎语法为:

status?"23":nil

不起作用。

2 个答案:

答案 0 :(得分:3)

方法名称可以以问号结尾,因此请使用更多空格:

status ? "23" : nil

等价地你可以写:

("23" if status)

答案 1 :(得分:2)

status?之间加一个空格。似乎它可能被解析为方法名称status?。另外,不要用分号终止你的句子。并且不要使用var

x = status ? "0" : "1"