class CodeHash
用一致化方法根据key查值或反查,使用hash方法([]),如
code_hash = CodeHash.new({'普通会员'=>0, '高级会员'=>10}) code_hash['普通会员'] #=>0 dode_hash[0] #=>'普通会员'
相关概念:
key: 人可识别的编码,如‘普通会员’ value: 存入数据库的编码,一般为增加数据检索速度
规则:
* 键/值具有唯一性(符合大部分使用情况) * 字符串键统一用字符串访问,而非符号,如code_hash['a'], not code_hash[:a] (因为很多键为汉字)
Attributes
data[RW]
invert_data[RW]
Public Class Methods
new(code_hash={})
click to toggle source
# File lib/ns_service_pack/code_hash.rb, line 19 def initialize(code_hash={}) @data = code_hash @invert_data = code_hash.invert end
Public Instance Methods
[](code)
click to toggle source
# File lib/ns_service_pack/code_hash.rb, line 24 def [](code) #Fix a bug on 20111115 #@data[code] || @invert_data[code]||"真的没找到呀![code=#{code.to_s}]" if @data.key?(code) @data[code] elsif @invert_data.key?(code) @invert_data[code] else "注意:没找到对应键[#{code.to_s}]的值!" end end
all()
click to toggle source
# File lib/ns_service_pack/code_hash.rb, line 36 def all @data.merge(@invert_data) end
keys()
click to toggle source
# File lib/ns_service_pack/code_hash.rb, line 40 def keys @data.keys end
values()
click to toggle source
# File lib/ns_service_pack/code_hash.rb, line 44 def values @data.values end