Ruby语言入门(23)- 内部类 -Struct
上一篇 /
下一篇 2013-03-18 14:44:23
/ 个人分类:测试
Struct为结构体类。由Struct.new生成该类的子类。在子类中使用new方法就可以生成构造体。构造体子类中定义了构造体成员的访问方法。
Struct.new([name,] member ... )
生成并返回一个名为name的Struct 类的子类。子类中定义了访问结构体成员的方法.结构体名name将成为Struct的类常数名,所以必须以大写字母开始。
Struct::XXX.new(value,...)
Struct::XXX[value,...]
生成并返回结构体对象。参数将成为结构体的初始值。
Child = Struct.new("Child", :name, :age) //由Struct.new生成该类的子类。
child1 = Child.new("xixi", 5) //在子类中使用new方法就可以生成构造体。
child1.age //构造体子类中定义了构造体成员的访问方法。
#=> 5
child2.name
#=>xixi
self[nth]
返回结构体的第nth个成员的值。
child1[1]
#=> 5 //child1[1] --> child1.age
self[nth]=value
将结构体的第nth个成员的值设定为value,并返回value值。
child1[1]=11
child1[1]
#=> 11
each {|value| ... }
依次对结构体的各个成员进行迭代操作。
child1.each {|v| puts v}
#=>
xixi
11
each_pair {|member, value| ... }
在结构体中,依次将某成员的名称和值传给块进行迭代操作。
child1.each_pair{|m,v| p m,v}
child1.legth
#=>2
members
以数组形式返回结构体的成员名(字符串)。
child1.members
#=>[:name, :age]
values/to_a
将结构体的成员的值存入数组,并返回它。
child1.values
#=>["xixi", 11]
values_at(member_1, ... member_n)
以数组的形式返回参数(数值、字符串或Symbol)所指成员的值。
child1.values_at(1)
#=> 11
收藏
举报
TAG: