ruby默认参数成语

时间:2010-10-06 18:55:51

标签: ruby default default-value idioms

当你想要一个函数的默认参数,但是一个依赖于另一个参数/另一个变量的函数时,Ruby中的成语是什么?例如,在Python中,一个例子是:

def insort_right(a, x, lo=0, hi=None):
    if hi is None:
        hi = len(a)
    while lo < hi:
        mid = (lo+hi)//2
        if x < a[mid]: hi = mid
        else: lo = mid+1
    a.insert(lo, x)

此处,如果未提供hi,则应为len(a)。您不能在默认参数列表中执行len(a),因此您为其分配了一个标记值None,并检查它。 Ruby中的等价物是什么?

1 个答案:

答案 0 :(得分:13)

def foo(a, l = a.size)
end