Th
parent_class
实例变量有一个默认值 "String"
。我想制作一个具有 parent_class = "None"
的实例。我的 super_string1
实例定义可以正常工作,但我的 super_string2
实例却不能。我的 super_string2
声明做错了什么?
class SuperString < String
def initialize(str,id_num = 0,parent_class = "String")
super(str)
@id_num = id_num
@str_length = str.length
@creator = "Me"
@parent_class = parent_class
end
attr_accessor :id_num, :str_length, :creator, :parent_class
end
super_string1 = SuperString.new("world", 0, "None")
puts super_string1.parent_class
super_string2 = SuperString.new("world", parent_class = "None") # This one doesn't work right
puts super_string2.parent_class
此代码的输出是:
None
String
您可以使用可选的关键字参数
class SuperString < String
def initialize(str, id_num: 0, parent_class: "String")
super(str)
@id_num = id_num
@str_length = str.length
@creator = "Me"
@parent_class = parent_class
end
attr_accessor :id_num, :str_length, :creator, :parent_class
end
super_string1 = SuperString.new("world", id_num: 0, parent_class: "None")
super_string1.parent_class
super_string2 = SuperString.new("world", parent_class: "None")
super_string2.parent_class
super_string3 = SuperString.new("world")
super_string3.parent_class
"None"
"None"
"String"
https://www.ombulabs.com/blog/ruby/learning/methods-arguments-ruby-part2.html