大多数在线资料都有这样的初始化:
class MyClass attr_accessors :a, :b, :c def initialize(a,b,c) @a = a @b = b @c = c end end
有或没有默认值.创建一个新实例是:
n = MyClass.new(1,2,3) n.a # => 1 n.b # => 2 n.c # => 3
我想知道如何使用哈希语法初始化实例,如:
n = MyClass.new(:a => 1, :b => 2, :c => 3)
这相当于:
n = MyClass.new(:b => 2, :a => 1, :c => 3)
这难以实施吗?
使用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