Ruby中的Struct是一个特殊的类,只(
仅仅只)用来存取数据
先看一个例子struct的例子
Person = Struct.new(:name, :gender, :age)
jia = Person.new("zhang san", "male", 20)
p jia
puts jia.name + jia.gender + " " + jia.age.to_s
执行结果如下:
#<
struct Person name="zhang san",
gender="male",
age=20>
zhang sanmale 20
同普通的类一样可以正常赋值与获取成员变量的值,但是Struct与类不同,在测试中发现它更像C/或者C++中的结构体,可能也由此得名。
进行如下测试:
给Person类进行扩展
Person = Struct.new(:name, :gender, :age)
class Person
def show_person
puts @name + @gender + " " + @age.to_s
end
end
jia = Person.new("zhang san", "male", 20)
p jia
jia.show_person
执行结果如下:
#<
struct Person name="zhang san",
gender="male",
age=20>
struct_test.rb:14:in `show_person': undefined method `+' for nil:NilClass (NoMethodError)
from struct_test.rb:22:in `<main>'
可见对Person的扩展并没有起作用
采用通常的方法,使用class定义Person类
class Person
attr_accessor :name, :gender, :age
def initialize(name, gender, age)
@name = name
@gender = gender
@age = age
end
end
class Person
def show_person
puts @name + @gender + " " + @age.to_s
end
end
if __FILE__ == $0
jia = Person.new("zhang san", "male", 20)
p jia
jia.show_person
end
#<
Person:0x9dcc0cc
@name="zhang san",
@gender="male",
@age=20>
zhang sanmale 20
可以注意到用struct定义的Person并没有成员变量,并且是以struct开头表示
分享到:
相关推荐
Struts in Action 英文版和对照翻译的中文修正,可对照阅读,在学习Struts的同时也学习一些专业术语
Struts In Action 电子书 Struts1电子书
经典的action系列之一,struts in action,相信对想要学习struts架构的朋友有所帮助
Struts in Action 一步步介绍了Struts 框架。 并且书中好包含展示此书介绍的最好实践技术的几个示例应用程序。本书旨在帮助那些需要关于如何使他们的应用运行在Struts下面的实际和实战技术的专业技术人员。 ...
struts in action 英文版 --不错的书,学习struts可以使用这本好书,如果你的英语水平有不是那么好可以先看中文书,在看这本英文书,要以英文为准,切记
struts in action 十分完整的版本
Struts 2实战 struts2 in Action
Struts In Action 的源代码(一)。
Struts in Action(铁手) 博文链接:https://snail-gtt.iteye.com/blog/125698
Struts开发小组的核心成员编写的一本关于Struts开发的经典书籍
非常好的一本书,学Struts必看的书
Struts In Action中文版 Struts In Action中文版
Struts2 in action 中文版
Struts in Action SKStruts in Action SKStruts in Action SK
struts in action
Struts In Action(中文版).pdf 入门可以,是不是老了一些呢
Manning.Struts in Action.rar Manning.Struts in Action.rar
Struts2inAction 英文版 非常实用的一本Struts教材
Struts in actionStruts in actionStruts in actionStruts in actionStruts in actionStruts in actionStruts in actionStruts in action