首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Rinda::Tuple

Parent:Object

元组是Rinda编程中的基本对象。如果元组和模板的大小相同,则元组可以与模板匹配。

公共类方法

new(ary_or_hash) 显示源

创建一个新的Tuple,ary_or_hash它必须是Array或Hash。

代码语言:javascript
复制
# 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

公共实例方法

显示来源

元组元素的访问器方法。

代码语言:javascript
复制
# File lib/rinda/rinda.rb, line 69
def [](k)
  @tuple[k]
end

each(){| k,v | ...}显示源文件

迭代遍历元组,产生索引或键,以及值,从而确保数组迭代类似于散列。

代码语言:javascript
复制
# 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从元组中提取项目。

代码语言:javascript
复制
# File lib/rinda/rinda.rb, line 76
def fetch(k)
  @tuple.fetch(k)
end

size()显示源

元组中元素的数量。

代码语言:javascript
复制
# File lib/rinda/rinda.rb, line 62
def size
  @tuple.size
end

value() 显示源

返回元组本身

代码语言:javascript
复制
# File lib/rinda/rinda.rb, line 94
def value
  @tuple
end

私有实例方法

hash?(ary_or_hash) 显示源

代码语言:javascript
复制
# File lib/rinda/rinda.rb, line 100
def hash?(ary_or_hash)
  ary_or_hash.respond_to?(:keys)
end

init_with_ary(ary) 显示源

Mungesary成为一个有效的元组。

代码语言:javascript
复制
# 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是一个有效的元组。

代码语言:javascript
复制
# 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

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com