Rinda::Tuple
class Rinda::Tuple
Parent:Object
元组是Rinda编程中的基本对象。如果元组和模板的大小相同,则元组可以与模板匹配。
公共类方法
new(ary_or_hash) 显示源
创建一个新的Tuple,ary_or_hash
它必须是Array或Hash。
# File lib/rinda/rinda.rb, line 51
def initialize(ary_or_hash)
if hash?(ary_or_hash)
init_with_hash(ary_or_hash)
else
init_with_ary(ary_or_hash)
end
end
公共实例方法
显示来源
元组元素的访问器方法。
# File lib/rinda/rinda.rb, line 69
def [](k)
@tuple[k]
end
each(){| k,v | ...}显示源文件
迭代遍历元组,产生索引或键,以及值,从而确保数组迭代类似于散列。
# File lib/rinda/rinda.rb, line 84
def each # FIXME
if Hash === @tuple
@tuple.each { |k, v| yield(k, v) }
else
@tuple.each_with_index { |v, k| yield(k, v) }
end
end
fetch(k)显示源
k
从元组中提取项目。
# File lib/rinda/rinda.rb, line 76
def fetch(k)
@tuple.fetch(k)
end
size()显示源
元组中元素的数量。
# File lib/rinda/rinda.rb, line 62
def size
@tuple.size
end
value() 显示源
返回元组本身
# File lib/rinda/rinda.rb, line 94
def value
@tuple
end
私有实例方法
hash?(ary_or_hash) 显示源
# File lib/rinda/rinda.rb, line 100
def hash?(ary_or_hash)
ary_or_hash.respond_to?(:keys)
end
init_with_ary(ary) 显示源
Mungesary
成为一个有效的元组。
# File lib/rinda/rinda.rb, line 107
def init_with_ary(ary)
@tuple = Array.new(ary.size)
@tuple.size.times do |i|
@tuple[i] = ary[i]
end
end
init_with_hash(hash) 显示源
确保hash
是一个有效的元组。
# File lib/rinda/rinda.rb, line 117
def init_with_hash(hash)
@tuple = Hash.new
hash.each do |k, v|
raise InvalidHashTupleKey unless String === k
@tuple[k] = v
end
end