हाल ही में मुझे पता चला कि tap
का उपयोग नए चर के मानों को "ड्रिलि" करने के लिए किया जा सकता है; उदाहरण के लिए, बनाने और एक सरणी भरने, इस तरह के लिए:रूबी 'टैप' विधि - असाइनमेंट के अंदर
array = [].tap { |ary| ary << 5 if something }
इस कोड में array
अगर something
truthy है 5
धक्का होगा; अन्यथा, array
खाली रहेगा।
लेकिन मुझे समझ में नहीं क्यों इस कोड को क्रियान्वित करने के बाद करते हैं:
array = [].tap { |ary| ary += [5] if something }
array
खाली रहता है। क्या कोई मेरी मदद कर सकता है?
जोड़ें: 'a + = b' 'a = a + b' जैसा काम करता है - यहां सृजन का तथ्य एक नई वस्तु अधिक स्पष्ट है। – Nakilon
@ नकिनॉन: यह देखते हुए कि ओपी स्पष्ट रूप से असाइनमेंट के बारे में बात कर रहा था, मैंने माना कि वह हिस्सा उसके लिए स्पष्ट था। – sepp2k
ठीक है, मुझे लगता है कि मैं समझ गया; यह असाइनमेंट ऑपरेशन का उपयोग नहीं करता है। जिस प्रभाव को मैं चाहता हूं उसे प्राप्त करने के लिए मुझे
array = [].tap { |ary| [5].each{ |v| ary << 5 } }
करना चाहिए --- आप अपनी टिप्पणियों में स्वरूपण कैसे जोड़ सकते हैं ?? – mdesantis