Ruby का 'Hash' एक Swiss Army Knife है
(akshaykhot.com)- Ruby का Hash key को value से map करने वाला built-in data structure है. O(1)
- दूसरी भाषाओं में key/value को manage करने के लिए कई classes होती हैं, लेकिन Ruby में key/value pairs को एक ही Hash class से manage किया जाता है
- यह बहुत flexible data structure है, इसलिए data object / dictionary / hash table / sorted list आदि के अलावा भी कई तरह से इस्तेमाल किया जा सकता है
- symbol/string/integer सहित लगभग हर object को key के रूप में इस्तेमाल किया जा सकता है
fetchmethod से key न होने पर default value सेट की जा सकती हैdeleteसे key हटाई जा सकती है. मौजूद न होने वाली key को call करने पर भी कोई समस्या नहीं होती- Nesting संभव है
- संबंधित key न होने पर
nilreturn होता है, लेकिनdefaultproperty से default value दी जा सकती है Enumerablemodule शामिल होने की वजह सेeach,each_key,each_pair,each_value,keys,valuesजैसे methods से hash को iterate किया जा सकता है- double splat operator
**से hash के अंदर की सामग्री को unpack किया जा सकता है - इसके अलावा उपयोगी methods:
any?(key),compact,empty?,merge,hash.eql? obj,except(*keys),reject,filterऔरselect,fetch_values(*keys),has_key?,member?,include?,key?,has_value?,value?,length,size,count,slice(*keys),transform_values,flatten
9 टिप्पणियां
जब मैंने विश्वविद्यालय में C सीखी थी और पहली बार Python की list देखी थी, तब जो रोमांच हुआ था, वही याद आ रहा है।
"Swiss Army Knife"का अनुवाद"MacGyver knife"करने की कोशिश की, लेकिन लगा कि आजकल के लोग शायद इसे न समझें, इसलिए"versatile tool"कर दिया..मैकगाइवर तक तो ठीक लगता है, लेकिन अगर किसी ने Swiss Army knife के बारे में नहीं सुना हो तो समझना मुश्किल होगा, हाहा
मैं, जो अभी किशोर हूँ, भी इसे समझ गया/गई। लगता है इसे न जानने वाले लोग बहुत कम हैं।
अरे, यह तो वाकई हैरान कर देने वाली खोज है। मुझे सच में लगा था कि मुझे यह कभी पता नहीं चलेगा.
वैसे, GeekNews उपयोगकर्ताओं में किशोर भी हैं.. कमाल हैं आप!
हैरानी की बात है कि अब किशोर डेवलपर्स भी बढ़ रहे हैं, इसलिए लगता है कि GeekNews पढ़ने वाले छात्र डेवलपर्स की संख्या भी धीरे-धीरे बढ़ रही है.
मैं भी सिर्फ 9 महीने पहले तक किशोर ही था...
बहुत से लोग शायद यह नहीं जानते कि
MacGyverनाम का एक ड्रामा था, लेकिन फिर भी लगता है कि맥가이버칼शब्द का मतलब लगभग सभी समझ लेते हैं।अब तक तो इसका दर्जा किसी कहावत जैसा हो गया है, तो क्या यह ठीक नहीं होगा? फिलहाल, 20s में होने के नाते मैं तो इसे समझ गया :D
आह। अगर यह समझ में आ जाए, तो समझिए आप भी पक्के अंकल हैं :)