2010-10-06 19 views
9

रूबी में मुहावरे क्या है जब आप किसी फ़ंक्शन के लिए डिफ़ॉल्ट तर्क चाहते हैं, लेकिन वह एक जो अन्य पैरामीटर/किसी अन्य चर पर निर्भर है? उदाहरण के लिए, पायथन में, एक उदाहरण है:रूबी डिफ़ॉल्ट तर्क 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) 

यहाँ, यदि hi आपूर्ति नहीं की गई है, यह len(a) होना चाहिए। आप डिफ़ॉल्ट तर्क सूची में len(a) नहीं कर सकते हैं, इसलिए आप इसे एक सेंटीनेल मान असाइन करते हैं, कोई नहीं, और उसके लिए जांचें। रुबी में बराबर क्या होगा?

उत्तर

13
def foo(a, l = a.size) 
end 
+0

यदि आपके पास लूप है तो क्या होता है? 'def foo (a = b, b = a)'। या आप केवल पहले परिभाषित वर्णों का उल्लेख कर सकते हैं? – Claudiu

+5

पहले आना चाहिए – horseyguy

संबंधित मुद्दे