查看: 1949|回复: 3

关于struct

  [复制链接]
头像被屏蔽
梦石
0
星屑
49
在线时间
0 小时
注册时间
2007-7-1
回帖
527
发表于 2007-7-2 05:10:50 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
头像被屏蔽
梦石
0
星屑
49
在线时间
0 小时
注册时间
2007-7-1
回帖
527
发表于 2007-7-2 05:10:50 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

月下可怜人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2005-11-23
回帖
3667

第1届短篇游戏比赛亚军

发表于 2007-7-2 05:15:20 | 显示全部楼层
Struct.new([name,] member ... )
生成并返回一个名为name的Struct 类的子类。子类中定义了访问结构体成员的方法。例如:

dog = Struct.new("Dog", :name, :age)
fred = dog.new("fred", 5)
fred.age=6
printf "name:%s age:%d", fred.name, fred.age

会输出"name:fred age:6"。

结构体名name将成为Struct的类常数名,所以必须以大写字母开始。member可以是Symbol或字符串。

若第一参数为字符串的话,它将被当作类名来处理,因此会出现下列错误。所以最好使用Symbol来指定结构体成员。

p Struct.new('foo', 'bar')
# => -:1:in `new': identifier foo needs to be constant (NameError)

若省略name(第一参数为Symbol)时,就会生成无名的结构体类。当首次要求无名类提供其类名时,它会搜索被赋值的常数名,若找到的话就以该常数名为类名(请参考Class.new)。



晕,RUBY这不有结构体吗——
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
纵然千里外,我等雁归来。
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
49
在线时间
0 小时
注册时间
2007-7-1
回帖
527
 楼主| 发表于 2007-7-2 05:17:26 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部