Ruby 2.4

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