2013-05-23 4 views
17

क्या रुबी में कोई तरीका है जो विपरीत String#succ करता है?string.next के विपरीत क्या है?

आप succ या चलाते हैं next आप इस मिल:

a = "4.4.10" 
a.previous 
=> "4.4.09" 

यह संभव है:

a = "4.4.10" 
a.succ 
=> "4.4.11" 

मैं विपरीत करना चाहते हैं? मुझे रूबी दस्तावेज़ों में यह खोजने में मुश्किल हो रही थी। शायद यह अस्तित्व में नहीं है?

+0

मुझे भी एक के बारे में पता नहीं है। लेकिन इसे स्वयं लागू करने के लिए बहुत कठिन नहीं होना चाहिए। –

+0

मुझे लगा कि यह मामला था। इसे लिखने के दृष्टिकोण पर कोई अच्छा सुझाव है? –

+1

डॉट्स पर विभाजित करें, अंतिम सेगमेंट चुनें, int में डालें, कमी करें, स्ट्रिंग बैक इकट्ठा करें। यह कोड की 3 लाइनों की तरह है :) –

उत्तर

32

prev या कुछ ऐसा मानक मानक एपीआई में नहीं है क्योंकि succ और एक हाइपोएटेटिकल prev अनुमानित हैं। इसके बावजूद, "Implement Ruby String Class Prev/Pred/Prev!/Pred! - Opposite Of Next/Succ Methods" एक संभावित संस्करण है जिसका आप उपयोग कर सकते हैं।

मूल समस्या यह है कि succ उलटा नहीं है। इसका मतलब है, एक बार जब आप succ लागू करते हैं, तो prev कुछ अस्पष्टता के साथ खत्म हो जाएगा।

surjective map of succ and prev

+4

अद्भुत होगा! आपका बहुत बहुत धन्यवाद। मुझे इसे एक शॉट देना होगा और देखें कि यह कैसे काम करता है! –

+0

मैं बस इसके बारे में सोच रहा था, और यह एक उत्कृष्ट व्याख्या है कि क्यों .prev को लागू करना या भविष्यवाणी करना बहुत कठिन होगा यदि यह एक वास्तविक विधि थी। – Shem

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