मैं Ruby 1.9.3
का उपयोग कर रहा हूं। मैं कुछ पैटर्न के साथ खेल रहे हैं और कुछ दिलचस्प पाया गया था:पैटर्न मिलान करते समय = ~ और मैच() के बीच क्या अंतर है?
उदाहरण 1:
irb(main):001:0> /hay/ =~ 'haystack'
=> 0
irb(main):003:0> /st/ =~ 'haystack'
=> 3
उदाहरण 2:
irb(main):002:0> /hay/.match('haystack')
=> #<MatchData "hay">
irb(main):004:0> /st/.match('haystack')
=> #<MatchData "st">
=~
रिटर्न अपने पहले मैच के पहले स्थान, जबकि match
पैटर्न रिटर्न । इसके अलावा, =~
और match()
के बीच कोई अंतर है?
निष्पादन समय अंतर(@Casper के अनुसार)
irb(main):005:0> quickbm(10000000) { "foobar" =~ /foo/ }
Rehearsal ------------------------------------
8.530000 0.000000 8.530000 ( 8.528367)
--------------------------- total: 8.530000sec
user system total real
8.450000 0.000000 8.450000 ( 8.451939)
=> nil
irb(main):006:0> quickbm(10000000) { "foobar".match(/foo/) }
Rehearsal ------------------------------------
15.360000 0.000000 15.360000 (15.363360)
-------------------------- total: 15.360000sec
user system total real
15.240000 0.010000 15.250000 (15.250471)
=> nil
क्यों नीचे वोट मुझे दिया गया है? – DoLoveSky
दोनों 'operator' और' method' ही बात कर रहे हो सकता है, लेकिन वे उनकी कार्यक्षमता में बहुत अधिक अलग हैं - दोनों पद बहुत अधिक जानकारी वहन करती है और जो वास्तव में भयानक और सभी अतः उपयोगकर्ताओं के लिए उपयोगी जानकार जानकारी है। इन सबके बावजूद मैं वोट कम कर रहा हूं मतलब मेरे लिए वास्तव में बुरा है! मैंने मंच से यह उम्मीद नहीं की थी। – DoLoveSky
मैंने आपको कम नहीं किया, लेकिन मुझे लगता है कि ऐसा इसलिए है क्योंकि लिखित प्रश्न मामूली रूप से बकवास है। आपने पाया कि एक से अधिक विधि हैं जो कुछ समान करती हैं, लेकिन प्रत्येक अलग-अलग परिणाम देता है। यह दिलचस्प क्यों है? रूबी (और अधिकांश प्रोग्रामिंग भाषाओं) में कई विधियां हैं जो समान चीजें करती हैं लेकिन अलग-अलग परिणाम देती हैं। – Phrogz