赞 | 0 |
VIP | 17 |
好人卡 | 0 |
积分 | 1 |
经验 | 1022914 |
最后登录 | 2017-2-4 |
在线时间 | 10 小时 |
Lv1.梦旅人 月下可怜人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 10 小时
- 注册时间
- 2005-11-23
- 帖子
- 4085

|
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感谢您的热情解答~ |
|