我是红宝石的新手,知道条件语句,我尝试过以下操作:
marks_hash
.group_by {
|name, marks|
marks >= pass_marks? "Passed": "Failed"
}
enter code here
此无辜的代码给出了以下错误:
语法错误,意外的tSTRING_BEG,期待do或'{'或'('
答案 0 :(得分:-2)
作为SO share your knowledge
问题在以下行中:
marks >= pass_marks? "Passed": "Failed"
应该是:
marks >= pass_marks ? "Passed": "Failed"
请注意,在第一个示例中,?
附加到了pass_marks
,但在第二个示例中,?
之前有空格。
区别在于,在pass_marks?
中,将pass_marks
视为方法,在第二个示例中,将pass_marks
创建为三元运算符条件下的变量。
更好的是使用括号来指示执行顺序,在这种情况下,?
前的空格将无关紧要:
(marks >= pass_marks)? "Passed": "Failed"