class Struct

Class Struct 提供了一种方便的方式来创建可以存储和检索值的简单类。

此示例创建了 Struct 的一个子类,Struct::Customer;第一个参数是一个字符串,是子类的名称;其他参数是符号,决定了新子类的成员

Customer = Struct.new('Customer', :name, :address, :zip)
Customer.name       # => "Struct::Customer"
Customer.class      # => Class
Customer.superclass # => Struct

每个成员都有两个对应的方法:一个写入器和一个读取器,用于存储和检索值。

methods = Customer.instance_methods false
methods # => [:zip, :address=, :zip=, :address, :name, :name=]

可以通过方法 ::new 创建子类的实例,并为其成员赋值。

joe = Customer.new("Joe Smith", "123 Maple, Anytown NC", 12345)
joe # => #<struct Struct::Customer name="Joe Smith", address="123 Maple, Anytown NC", zip=12345>

可以通过以下方式管理成员值:

joe.name    # => "Joe Smith"
joe.name = 'Joseph Smith'
joe.name    # => "Joseph Smith"

还可以通过以下方式;请注意,成员名称可以表示为字符串或符号。

joe[:name]  # => "Joseph Smith"
joe[:name] = 'Joseph Smith, Jr.'
joe['name'] # => "Joseph Smith, Jr."

参见 Struct::new

这里有什么

首先,其他内容。Class Struct

另请参阅 Data,它是一个类似但更严格的概念,用于定义不可变值对象。

在这里,class Struct 提供了以下有用的方法:

创建 Struct 子类的方法

查询方法

比较方法

获取元素的方法

赋值方法

迭代方法

转换方法