浏览 2336 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-12-21
class Person < Struct.new(:age) def say_age puts "say age: #{age}" if age != nil end def hello_age puts "hello age: #{age}" if age!=nil end end p = Person.new(30) p.say_age p.hello_age p.age = 20 p.say_age p.hello_age 输出是: say age: 30 hello age: 30 say age: 20 hello age: 20 如果使用: def say_age puts "say age: #{@age}" if @age != nil end def hello_age puts "hello age: #{@age}" if @age!=nil end 那么什么都不输出,应为@age 为nil 如果使用: def say_age puts "say age: #{:age}" if :age != nil end def hello_age puts "hello age: #{:age}" if :age!=nil end 那么输出是: say age: age hello age: age say age: age hello age: age :age 符号而已 ActiveRecord的低层有使用这种方式申明class class ColumnDefinition < Struct.new(:base, :name, :type, :limit, :precision, :scale, :default, :null) #:nodoc: .. .. .. end 文件:schema_definitions.rb 路径:%RUBY_HOME%\\lib\ruby\gems\1.8\gems\activerecord-2.0.1\lib\active_record\connection_adapters\abstract 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-12-21
哎哦哦。。。查了文档才知道自己自作多情了。晕 A Struct is a convenient way to bundle a number of attributes together, using accessor methods, without having to write an explicit class. The Struct class is a generator of specific classes, each one of which is defined to hold a set of variables and their accessors. In these examples, we‘ll call the generated class ``CustomerClass,’’ and we‘ll show an example instance of that class as ``CustomerInst.’‘ In the descriptions that follow, the parameter symbol refers to a symbol, which is either a quoted string or a Symbol (such as :name). |
|
返回顶楼 | |
发表时间:2007-12-21
例子:
# Create a structure with a name in Struct Struct.new("Customer", :name, :address) #=> Struct::Customer Struct::Customer.new("Dave", "123 Main") #=> #<Struct::Customer name="Dave", address="123 Main"> # Create a structure named by its constant Customer = Struct.new(:name, :address) #=> Customer Customer.new("Dave", "123 Main") #=> #<Customer name="Dave", address="123 Main"> 感觉就是最纯洁的 Java Bean了。 哈哈。。。。。Ruby Stone |
|
返回顶楼 | |