কোনও হ্যাশে একটি নির্দিষ্ট কী উপস্থিত রয়েছে কিনা তা কীভাবে পরীক্ষা করবেন?


636

আমি "ব্যবহারকারী" কীটি সেশনের হ্যাশটিতে উপস্থিত কিনা তা যাচাই করতে চাই। কিভাবে আমি এটি করতে পারব?

নোট করুন যে আমি কীটির মান শূন্য কিনা তা পরীক্ষা করতে চাই না। আমি কেবল "ব্যবহারকারী" কী উপস্থিত আছে কিনা তা যাচাই করতে চাই ।

উত্তর:


952

Hashএর key?পদ্ধতি আপনাকে জানায় যে প্রদত্ত কীটি উপস্থিত আছে কিনা।

session.key?("user")

দুর্দান্ত: "স্ট্রিং" অ্যাক্সেসর JSON.pars পার্স করা বস্তুর জন্যও কাজ করে :)
বিজন

2
এটি আমার পক্ষে কাজ করে না, ব্যবহারকারী: এর পরিবর্তে ব্যবহারকারী পদ্ধতিটি কাজ করেছে
আকাশ আগারওয়াল

295

Hash#has_key?কাজটি সম্পন্ন করার সময় , ম্যাটজ এখানে নোট হিসাবে , এটির পক্ষে অবহেলা করা হয়েছে Hash#key?

hash.key?(some_key)

1
পরিবর্তনের অনুরোধটির জন্য দুর্দান্ত রেফারেন্স এবং ম্যাটজ থেকে পরবর্তী প্রতিক্রিয়া।
জোশুয়া পিন্টার

কেউ কি নিশ্চিতভাবে জানেন?
কোডফোরস্টার

41

সর্বশেষ রুবি সংস্করণে হ্যাশ দৃষ্টান্তের একটি key?পদ্ধতি রয়েছে:

{a: 1}.key?(:a)
=> true

আপনার হ্যাশটিতে যা রয়েছে তার উপর নির্ভর করে প্রতীক কী বা একটি স্ট্রিং কী ব্যবহার করতে ভুলবেন না:

{'a' => 2}.key?(:a)
=> false

2
রুবি ১.6-এর প্রথম দিকে অবিচ্ছিন্নভাবে অস্তিত্ব ছিল: রুবি- ডক ডকস / ডকস / প্রোগ্রামিংআরবি / এইচটিএমএল (সম্ভবত পূর্বে ডকনোমিটি কোথায় চেক করতে হবে)
বেনি চেরনিয়াভস্কি-পাসকিন

28

এটি খুব দেরিতে হলেও প্রতীকগুলি কী হিসাবে ব্যবহার করা উচিত:

my_hash = {}
my_hash[:my_key] = 'value'

my_hash.has_key?("my_key")
 => false 
my_hash.has_key?("my_key".to_sym)
 => true 

my_hash2 = {}
my_hash2['my_key'] = 'value'

my_hash2.has_key?("my_key")
 => true 
my_hash2.has_key?("my_key".to_sym)
 => false 

আপনি হ্যাশ তৈরি করার সময় যদি আপনি কী হিসাবে স্ট্রিংটি পাস করেন তবে এটি কীগুলিতে স্ট্রিংটি অনুসন্ধান করবে।

তবে হ্যাশ তৈরি করার সময় আপনি কী হিসাবে প্রতীকটি পাস করেন তারপর has_key? চিহ্ন ব্যবহার করে কীগুলি অনুসন্ধান করবে।


আপনি যদি রেলগুলি ব্যবহার করেন তবে Hash#with_indifferent_accessআপনি এটি এড়াতে ব্যবহার করতে পারেন ; উভয় hash[:my_key]এবং hash["my_key"]একই রেকর্ড নির্দেশ করবে


6
আপনি যদি রেলগুলি ব্যবহার করেন তবে Hash#with_indifferent_accessআপনি এটি এড়াতে ব্যবহার করতে পারেন ; উভয়ই :my_keyএবং "my_key"একই রেকর্ডটির দিকে ইঙ্গিত করবে
ডিভন পার্সসন

5

আপনি সবসময় Hash#key?কীটি কোনও হ্যাশটিতে উপস্থিত কিনা তা যাচাই করতে ব্যবহার করতে পারেন।

তা না হলে আপনাকে ফিরিয়ে দেবে false

hash =  { one: 1, two:2 }

hash.key?(:one)
#=> true

hash.key?(:four)
#=> false


0

5 কারাগারে , কি_কি? কীটি হ্যাশটিতে বিদ্যমান কিনা তা পদ্ধতি পরীক্ষা করে। এটি ব্যবহারের বাক্য গঠনটি হ'ল:

YourHash.has_key? :yourkey
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.