Ruby 哈希(Hash)是一種可變的、無序的鍵值對集合
創(chuàng)建哈希:
hash = {} # 空哈希
hash = {key1: value1, key2: value2} # 帶有鍵值對的哈希
hash = Hash.new # 默認(rèn)值為 nil 的哈希
hash = Hash.new(default_value) # 使用默認(rèn)值的哈希
訪問哈希元素:
hash[key] # 返回鍵對應(yīng)的值,如果不存在則返回 nil
修改哈希元素:
hash[key] = new_value # 修改鍵對應(yīng)的值
刪除哈希元素:
hash.delete(key) # 刪除鍵對應(yīng)的元素,返回被刪除的值
hash.delete_if { |key, value| condition } # 刪除滿足條件的元素
檢查哈希中是否存在某個鍵:
hash.has_key?(key) # 返回 true 如果存在,否則返回 false
hash.key?(key) # Ruby 3.0+ 中推薦使用此方法
獲取哈希的長度:
hash.length # 返回哈希中的元素個數(shù)
遍歷哈希:
hash.each { |key, value| block } # 遍歷哈希中的每個元素
hash.each_key { |key| block } # 只遍歷鍵
hash.each_value { |value| block } # 只遍歷值
hash.each_pair { |key, value| block } # 遍歷鍵值對
合并哈希:
hash1.merge(hash2) # 返回一個新的哈希,包含 hash1 和 hash2 的所有元素,如果鍵沖突則使用 hash2 的值
hash1.merge!(hash2) # 修改 hash1,使其包含 hash1 和 hash2 的所有元素,如果鍵沖突則使用 hash2 的值
轉(zhuǎn)換哈希:
hash.to_a # 將哈希轉(zhuǎn)換為鍵值對數(shù)組
hash.to_s # 將哈希轉(zhuǎn)換為字符串
hash.inspect # 返回哈希的字符串表示形式
哈希的常用方法:
hash[:key] # 使用符號作為鍵訪問哈希元素
hash[key] = value # 同時設(shè)置鍵和值
hash.has_value?(value) # 檢查哈希中是否存在某個值
hash.values # 返回哈希中所有值的數(shù)組
hash.keys # 返回哈希中所有鍵的數(shù)組
hash.empty? # 檢查哈希是否為空
hash.size # 返回哈希中的元素個數(shù)(與 length 等價)
這些實(shí)用方法可以幫助您更有效地操作 Ruby 哈希。