क्या कोई रूबी में टुपल्स का उपयोग करता है? यदि हां, तो एक टुपल कैसे लागू कर सकता है? रूबी हैश अच्छे हैं और लगभग भी काम करते हैं, लेकिन मैं वास्तव में पाइथन में टुपल क्लास की तरह कुछ देखना चाहता हूं, जहां आप .
नोटेशन का उपयोग कर सकते हैं, जिसके लिए आप देख रहे हैं। मैं इसे इसलिए चाहता हूं ताकि मैं D का कार्यान्वयन कर सकूं, जो कि पाइथन के लिए Dee के समान है।रूबी में ट्यूपल्स का उपयोग करना?
उत्तर
संक्षिप्त उदाहरण:
require 'ostruct'
person = OpenStruct.new
person.name = "John Smith"
person.age = 70
person.pension = 300
puts person.name # -> "John Smith"
puts person.age # -> 70
puts person.address # -> nil
यह _exactly_ है जो मैं खोज रहा था। धन्यवाद! –
एनपी :) हालांकि आप का जवाब देने के लिए प्रश्न: नहीं, मैं रूबी में टुपल्स का उपयोग नहीं करता, खुलेस्ट्रक्चर या अन्यथा। मैं उच्च अंत में कक्षाओं का उपयोग करता हूं और कम अंत में हैश :) –
यह एक खराब जवाब है, बस एक लिंक है? गंभीरता से? क्या होता है जब लिंक टूट जाता है? –
तथ्य यह है कि आप हैश और के बारे में बात के आधार पर। नोटेशन मैं मानता हूं कि आप (1. "a")
सॉर्ट की तरह एक अलग तरह का ट्यूपल का मतलब है। आप शायद Struct
कक्षा की तलाश में हैं। उदाहरण के लिए:
Person = Struct.new(:name, :age)
me = Person.new
me.name = "Guy"
me.age = 30
यह करीब है, लेकिन इसे नाम देने के लिए मुझे बग्स। मैं कुछ (1. "ए") की तरह कुछ ढूंढ रहा था लेकिन संपत्ति के साथ आप वर्णन/सेट नोटेशन प्राप्त करते हैं। –
@panesofglass, कुछ भी नाम देने की आवश्यकता नहीं है: a = Struct.new (: name,: age)। नया; a.name = "Guy" – paradoja
क्या मैं 'a = Struct.new (: name,: age) 'सेट कर सकता हूं और बाद में कह सकता हूं। नया? मुझे ऐसा लगता है। मुझे इसे देखना होगा। मैं जो चाहता हूं उसके रूप में यह बहुत अधिक स्पष्ट होगा। –
हालांकि इस सख्ती से एक टपल नहीं है (सदस्यों के डॉट नोटेशन ऐसा नहीं कर सकते), आप एक सूची है, जो अक्सर गहरे लाल रंग का पास से जा रहा है के साथ मुद्दों का समाधान होगा से चरों की सूची प्रदान कर सकते हैं - जब आप वापसी मूल्यों की सूची के बाद होते हैं।
उदा।
:linenum > (a,b,c) = [1,2,3]
:linenum > a
=> 1
:linenum > b
=> 2
:linenum > c
=> 3
आप destructuring के साथ कुछ समान कर सकते हैं:
def something((a, b))
a + b
end
p something([1, 2])
यह 3
बाहर प्रिंट अपेक्षा के अनुरूप।
मैं Gem for Ruby tuples का लेखक हूं।
आप दो वर्गों के साथ प्रदान की जाती हैं:
सामान्य रूप में मेंPair
Tuple
विशेष
आप उन्हें अलग अलग तरीकों से प्रारंभ कर सकते हैं:
Tuple.new(1, 2)
Tuple.new([1, 2])
Tuple(1, 2)
Tuple([1, 2])
Tuple[1, 2]
दोनों कक्षाओं में कुछ सहायक तरीके हैं:
length
/arity
- जो टपलfirst
/last
/second
(केवल जोड़ी) के अंदर मानों की संख्या देता है - जो एक इसी तत्व देता है[]
कि आप किसी विशेष तत्वों के लिए एक पहुँच देता है
आप इस चाल के साथ स्कैला टुपल्स का नकल कर सकते हैं:
Tuple = Struct.new(:_1, :_2)
2.2.5 :003 > t = Tuple.new("a", "b")
=> #<struct Tuple _1="a", _2="b">
2.2.5 :004 > t._1
=> "a"
2.2.5 :005 > t._2
=> "b"
लेकिन यहाँ आप नहीं हो सकता destructuring:
2.2.5 :012 > a, b = t
=> {:_1=>"a", :_2=>"b"}
2.2.5 :013 > a
=> {:_1=>"a", :_2=>"b"}
2.2.5 :014 > b
=> nil
लेकिन इस चाल के लिए धन्यवाद: https://gist.github.com/stevecj/9ace6a70370f6d1a1511 destructuring काम करेगा:
2.2.5 :001 > Tuple = Struct.new(:_1, :_2)
=> Tuple
2.2.5 :002 > t = Tuple.new("a", "b")
=> #<struct Tuple _1="a", _2="b">
2.2.5 :003 > t._1
=> "a"
2.2.5 :004 > class Tuple ; def to_ary ; to_a ; end ; end
=> :to_ary
2.2.5 :005 > a, b = t
=> #<struct Tuple _1="a", _2="b">
2.2.5 :006 > a
=> "a"
2.2.5 :007 > b
=> "b"
- 1. क्या सी में पायथन ट्यूपल्स का अनुकरण करना संभव है?
- 2. स्कैला: ट्यूपल्स के समानांतर असाइनमेंट
- 3. रेल पर रूबी में शामिल टेबल का उपयोग करना
- 4. क्या मुझे रूबी धागे का उपयोग करना चाहिए या थ्रेडिंग के लिए पूरी तरह रूबी का उपयोग नहीं करना चाहिए?
- 5. का उपयोग रूबी
- 6. # का उपयोग करना! उबंटू
- 7. मुझे रेल पर रूबी का उपयोग क्यों करना चाहिए?
- 8. रूबी/पायथन इंटरऑपरेबिलिटी के लिए जेआरबी/जेथन का उपयोग करना?
- 9. रूबी का उपयोग करने में असमर्थ
- 10. रेल पर रूबी का उपयोग
- 11. रेल पर रूबी या रूबी का उपयोग करके हस्ताक्षर के साथ पीडीएफ उत्पन्न करना
- 12. रूबी पर रूबी में दशमलव के साथ काम करना 3
- 13. रेल में styleheet.css.erb का उपयोग करना संभव है?
- 14. "जहां का उपयोग करना; अस्थायी का उपयोग करना; फाइलों का उपयोग करना"
- 15. वीआईएम में मुझे किस मोड़ का उपयोग करना चाहिए?
- 16. रूबी पर रूबी का उपयोग करके ज़िप संग्रह कैसे बनाएं?
- 17. अपाचे में रूबी सीजीआई सेट करना
- 18. से छुटकारा "अस्थायी का उपयोग करना; filesort का उपयोग करना"
- 19. रेल पर रूबी या रूबी में नियंत्रण प्रवाह के लिए अपवादों का उपयोग करना अच्छा अभ्यास है? (। 4 एड)
- 20. क्या मुझे रूबी पर रूबी में सत्र कुंजी के लिए उद्धरण या कॉलन का उपयोग करना चाहिए?
- 21. रुबी में सिंगलटन कक्षाओं का उपयोग करना कब बुद्धिमान है?
- 22. रेल पर रूबी में polymorphism का उपयोग करने के विकल्प
- 23. रूबी में ऑब्जेक्ट मेमोरी एड्रेस एक्सेस करना ..?
- 24. वर्तमान का उपयोग कैसे करें? रूबी परियोजनाओं में?
- 25. रूबी के साथ सिनात्रा में gzip संपीड़न का उपयोग
- 26. सीएसएस का उपयोग शैली में रूबी ऑब्जेक्ट्स erb
- 27. रूबी में 'आवश्यकता', 'लोड` या' ऑटोलोड 'का उपयोग कब करें?
- 28. "||" का उपयोग करना जावा
- 29. मुझे डेटटाइम बनाम दिनांक, रूबी/रेल में समय फ़ील्ड का उपयोग कब करना चाहिए?
- 30. '?' (प्रश्न चिह्न) का उपयोग कर रूबी में एक ASCII वर्ण कोड प्राप्त करना
क्या तुमने कभी रूबी में विकास को लागू किया था? यदि हां, तो क्या आपके पास इसका लिंक है? मैं हाल ही में कुछ इसी तरह काम कर रहा हूं, और मुझे यह देखना अच्छा लगेगा कि आपने अभी तक क्या किया है। – dkubb
नहीं; मैंने इसे अब तक कभी नहीं बनाया है। मैं कई अन्य चीजों के आसपास वापस जाने की कोशिश कर रहा हूं। मुझे कई पुस्तकालयों को मिला जो ऐसा लगता है जैसे वे मदद करेंगे: LazyList और arel। मैं मूल रूप से इस निष्कर्ष पर आया कि .NET में LINQ लगभग वहां था, फिर द्वीप मिला, जो भी करीब था। LazyList का उपयोग करना और डायरेक्ट-टू-एसक्यूएल रूपांतरण को हटा देना, जिसके बाद भी एक परियोजना लक्ष्य है, लगभग आपको वहां ले जाएगा। उस ने कहा, मुझे यह देखना अच्छा लगेगा कि अब तक आपके पास क्या है। मैं अभी भी वापस आने से थोड़ा दूर हूं। –
महत्वाकांक्षा एक और दिलचस्प दिखने वाली लाइब्रेरी है, लेकिन इसे कुछ समय में अपडेट नहीं किया गया है। वह वह था जिसे मैंने पहले पाया था। ऐसा लगता है कि यह एक ही परंपरा में जारी रहा है। –