класс Rinda::Tuple
Кортеж — это базовый объект в Rinda программировании. Кортежи могут быть сопоставлены с шаблонами, если кортеж и шаблон имеют одинаковую длину.
Публичные методы класса
Публичные методы экземпляра
# File lib/rinda/rinda.rb, line 71 def [](k) @tuple[k] end
Метод доступа к элементам кортежа.
# File lib/rinda/rinda.rb, line 86
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 Проходим по кортежу, возвращая индекс или ключ, а также значение, гарантируя, что массивы будут итерироваться аналогично хешам.
# File lib/rinda/rinda.rb, line 78 def fetch(k) @tuple.fetch(k) end
Извлекает элемент k из кортежа.
# File lib/rinda/rinda.rb, line 64 def size @tuple.size end
Количество элементов в кортеже.
# File lib/rinda/rinda.rb, line 96 def value @tuple end
Возвращает сам кортеж
Приватные методы экземпляра
# File lib/rinda/rinda.rb, line 102 def hash?(ary_or_hash) ary_or_hash.respond_to?(:keys) end
# File lib/rinda/rinda.rb, line 109
def init_with_ary(ary)
@tuple = Array.new(ary.size)
@tuple.size.times do |i|
@tuple[i] = ary[i]
end
end Преобразует ary в допустимый Tuple.
# File lib/rinda/rinda.rb, line 119
def init_with_hash(hash)
@tuple = Hash.new
hash.each do |k, v|
raise InvalidHashTupleKey unless String === k
@tuple[k] = v
end
end Обеспечивает, что hash является допустимым Tuple.
Ruby Core © 1993–2022 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.