9
Was ist das Idiom in Ruby, wenn Sie ein Standardargument für eine Funktion haben wollen, aber eines, das von einem anderen Parameter/einer anderen Variablen abhängig ist? Zum Beispiel in Python, ein Beispiel ist:Rubin Standardargument Idiom
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)
Wenn hier hi
nicht geliefert wird, soll es len(a)
sein. Sie können len(a)
nicht in der Standardargumentliste verwenden, daher weisen Sie ihm einen Sentinel-Wert None zu und prüfen, ob das der Fall ist. Was wäre das Äquivalent in Ruby?
Was passiert, wenn Sie eine Schleife haben? 'def foo (a = b, b = a)'. Oder können Sie nur auf zuvor definierte Variablen verweisen? – Claudiu
Muss vorher kommen – horseyguy