Project1

标题: 关于struct [打印本页]

作者: dna_7086    时间: 2007-7-2 05:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: dna_7086    时间: 2007-7-2 05:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: 美兽    时间: 2007-7-2 05:15
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这不有结构体吗—— [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: dna_7086    时间: 2007-7-2 05:17
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1