9
當你想要一個函數的默認參數,但是依賴於另一個參數/另一個變量的時候,Ruby中的習慣用法是什麼?例如,在Python,一個例子是:ruby默認參數習慣用法
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中的等價物是什麼?
如果你有循環會發生什麼? 'def foo(a = b,b = a)'。或者你只能參考之前定義的變量? – Claudiu 2010-10-06 19:09:03
必須提前 – horseyguy 2010-10-06 19:11:27