我是Ruby的新手,我正在使用红宝石和尚来提高我的知识水平。我不明白有一个问题的解决方案。任务是:给定具有不同数字的3位或4位数字,返回可以用这些数字形成的所有唯一数字的排序数组。我不明白如何计算组合的数量。这是代码:
no_of_combinations = number.to_s.size == 3 ? 6 : 24
请向我解释一下3 ? 6 : 24
是什么以及它是如何运作的。
谢谢
答案 0 :(得分:0)
这是红宝石中的三元操作。它读作:
if(number.size isEqaul to 3)
no_of_combinations equals 6
else
no_of_combinations equals 24
这样想:
if_this_is_true ? then_do_this : else_do_this
答案 1 :(得分:0)
使用三元运算符?:
(需要3个参数:condition ? if_cond_true : if_cond_not_true
)的操作相当于:
no_of_combinations = if(number.to_s.size == 3)
6
else
24
end
6 == 3! #number of 3 3个不同元素/数字的排列
24 == 4! #number of 4的不同元素/数字的排列
哪里!表示阶乘(4!== 4×3×2×1)。