现在是时候缩短它了:
class Foo
attr_accessor :a, :b, :c, :d, :e
def initialize(a, b, c, d, e)
@a = a
@b = b
@c = c
@d = d
@e = e
end
end
Run Code Online (Sandbox Code Playgroud)
我们有'attr_accessor'来生成getter和setter.
我们有什么要按属性生成初始值设定项吗?
Phr*_*ogz 13
最简单的:
Foo = Struct.new( :a, :b, :c )
Run Code Online (Sandbox Code Playgroud)
生成访问器和初始化器.您可以使用以下方式进一步自定义
Foo = Struct.new( … ) do
def some_method
…
end
end
Run Code Online (Sandbox Code Playgroud)
您可以使用类似 gem 的构造函数。从描述来看:
声明式意味着通过将哈希值传递给构造函数来定义对象属性,构造函数将设置相应的 ivars。
它很容易使用:
Class Foo
constructor :a, :b, :c, :d, :e, :accessors => true
end
foo = Foo.new(:a => 'hello world', :b => 'b',:c => 'c', :d => 'd', :e => 'e')
puts foo.a # 'hello world'
Run Code Online (Sandbox Code Playgroud)
如果您不希望使用访问器生成 ivars,则可以省略 :accessors => true
希望这有帮助/Salernost
| 归档时间: |
|
| 查看次数: |
6064 次 |
| 最近记录: |