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}
#=> 
:name
xixi
:age
11

length/size
返回结构体的成员数量。
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:

 

评分:0

我来说两句

日历

« 2024-04-26  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 151013
  • 日志数: 185
  • 文件数: 6
  • 建立时间: 2007-08-06
  • 更新时间: 2015-01-06

RSS订阅

Open Toolbar