大多数在线资料都有这样的初始化:
class MyClass
attr_accessors :a, :b, :c
def initialize(a,b,c)
@a = a
@b = b
@c = c
end
end
Run Code Online (Sandbox Code Playgroud)
有或没有默认值.创建一个新实例是:
n = MyClass.new(1,2,3)
n.a # => 1
n.b # => 2
n.c # => 3
Run Code Online (Sandbox Code Playgroud)
我想知道如何使用哈希语法初始化实例,如:
n = MyClass.new(:a => 1, :b => 2, :c => 3)
Run Code Online (Sandbox Code Playgroud)
这相当于:
n = MyClass.new(:b => 2, :a => 1, :c => 3)
Run Code Online (Sandbox Code Playgroud)
这难以实施吗?
使用Ruby 2.0及更高版本中提供的ruby关键字参数
初始化参数中的格式是 variable:
class MyClass
attr_accessors :a, :b, :c
def initialize(a:, b:, c: )
@a = a
@b = b
@c = c
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48 次 |
| 最近记录: |