Ruby有一个`Pair`数据类型吗?

Ric*_*ick 5 ruby

有时我需要处理键/值数据.

我不喜欢使用Arrays,因为它们的大小不受限制(很容易意外添加2个以上的项目,而且最后需要验证大小).此外,指数01成为神奇的数字,并在传达意义方面表现不佳("当我说0时,我的意思是head......").

哈希也不合适,因为可能会意外添加额外的条目.

我编写了以下类来解决问题:

class Pair
  attr_accessor :head, :tail

  def initialize(h, t)
      @head, @tail = h, t
  end
end
Run Code Online (Sandbox Code Playgroud)

它工作得很好并且解决了这个问题,但我很想知道:Ruby标准库是否已经提供了这样的类?

dev*_*nke 1

Ruby 3.2 有一个 Data 类,可让您使用命名字段创建对/元组。

Measure = Data.define(:amount, :unit)
distance = Measure.new(100, 'km') #or Measure.new(amount:100, unit:'km')

distance.amount #=> 100
distance.unit #=> "km"
Run Code Online (Sandbox Code Playgroud)

查看文档。它比这个例子更灵活:

https://docs.ruby-lang.org/en/3.2/Data.html