`
jack_boy
  • 浏览: 138375 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Structs in ruby

阅读更多
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 in Action"是一本深入介绍Struts框架的经典著作,由Craig R. McClanahan和David Geary共同编写。这本书不仅详细阐述了Struts的核心概念和组件,还提供了大量实际应用的实例,帮助读者更好地理解和应用Struts...

    struts in action 英文版

    Struts in Action 是一本经典的技术书籍,专注于Java企业级应用开发框架Struts。这本书英文版深入浅出地讲解了如何使用Struts构建高效、可维护的Web应用程序。Struts是基于Model-View-Controller(MVC)设计模式的...

    Struts In Action(英文)

    **Struts In Action** 是一本专门探讨Apache Struts框架的权威书籍,对于深入理解并掌握Struts技术具有极高的价值。Struts是一个开源的Java Web应用程序框架,它基于Model-View-Controller(MVC)设计模式,旨在简化...

    Struts in Action

    《Struts in Action》这本书是Java Web开发领域中关于Apache Struts框架的一本经典著作,由Manning出版社出版。Struts是一个开源的MVC(Model-View-Controller)框架,它帮助开发者构建基于JSP和Servlet的应用程序,...

    Struts in Action中文版(PDF)

    Struts in Action 一步步介绍了Struts 框架。 并且书中好包含展示此书介绍的最好实践技术的几个示例应用程序。本书旨在帮助那些需要关于如何使他们的应用运行在Struts下面的实际和实战技术的专业技术人员。 ...

    struts in action完整中文版

    "Struts in Action"是一本深入探讨Struts框架的经典书籍,它的完整中文版为中国的开发者提供了全面理解Struts架构和实践的宝贵资源。这本书不仅覆盖了基础理论,还提供了丰富的实战经验,帮助读者将理论知识应用到...

    Struts In Action 电子书 Struts1电子书

    ### Struts In Action 电子书知识点总结 #### Struts简介 - **Struts**是一个用于构建企业级Java Web应用程序的开源框架。它采用MVC(Model-View-Controller)设计模式,将业务逻辑、用户界面和数据管理分离,从而...

    Struts_In_Action(中文完整版)

    《Struts In Action》是一本深入探讨Apache Struts框架的权威指南,中文完整版的提供为中文读者提供了深入了解和学习这一经典Java Web开发框架的宝贵资源。这本书详细讲解了Struts框架的核心概念、架构设计以及实际...

    Struts 2实战 struts2 in Action

    根据提供的文件信息,我们可以从《Struts 2实战 Struts2 in Action》这一书籍中提炼出与Struts 2框架相关的多个重要知识点。Struts 2是一个基于Java的开源Web应用框架,它继承了Struts 1的优点并进行了大量的改进和...

    《Struts in Action中文版》真正完整版

    综上所述,《Struts in Action中文版》这本书不仅深入浅出地介绍了Struts框架的技术要点,还通过具体的案例分析帮助读者更好地理解和掌握Struts框架的实际应用。对于想要学习Struts框架的开发者来说,这本书是一本...

    Struts In Action

    《Struts In Action》是关于Apache Struts框架的一本经典实战书籍,它的源代码提供了丰富的实例,帮助读者深入理解并掌握Struts框架的使用。在这些压缩包文件中,我们可以找到多个不同版本和应用场景的示例项目,...

    Struts In Action书籍

    《Struts In Action》是一本深入探讨Apache Struts框架的权威著作,对于Java Web开发者来说,这本书具有极高的学习价值。Struts是一个开源的MVC(Model-View-Controller)框架,它为构建基于Java EE的Web应用程序...

    Struts In Action中文版

    《Struts In Action》是一本深入探讨Struts框架的权威著作,中文版的出现使得国内开发者能够更加方便地学习和理解这一重要的Java Web开发框架。这本书由Manning出版社出版,铁手翻译团队精心翻译,确保了内容的准确...

    Struts 2实战 Struts 2 in action 的中文版

    根据提供的信息,我们可以推断出这是一本关于Struts 2框架的书籍——《Struts 2实战 Struts 2 in action 的中文版》。本书主要介绍了Struts 2框架的相关概念、工作原理以及实际应用案例等内容。接下来,我们将根据...

    Struts2实战(Struts2 In Action中文版)

    **Struts2实战——《Struts2 In Action中文版》** 《Struts2 In Action》是一本专为Java开发者设计的实战指南,旨在深入解析Struts2框架的使用与实践。Struts2作为一款强大的MVC(Model-View-Controller)框架,极...

Global site tag (gtag.js) - Google Analytics