Crystal lang 设置默认属性和属性类型
我想用Int32类型的Crystal lang 设置默认属性和属性类型,crystal-lang,Crystal Lang,我想用Int32类型的age属性定义一个类Person,并为它指定一个默认值(如果没有提供)。 我知道如何做第一个: class Person def initialize(@age : Int32) end end 第二个: class Person def initialize(@age = 0) end end 但不知道如何两者兼顾。这可能吗 这项功能是最近才添加的,文档中似乎没有。这是一种方法: class Person def initializ
age
属性定义一个类Person
,并为它指定一个默认值(如果没有提供)。
我知道如何做第一个:
class Person
def initialize(@age : Int32)
end
end
第二个:
class Person
def initialize(@age = 0)
end
end
但不知道如何两者兼顾。这可能吗 这项功能是最近才添加的,文档中似乎没有。这是一种方法:
class Person
def initialize(@age : Int32 = 0)
end
end
请注意,默认情况下,该类型暗示与默认值的类型相同。例如:
class Person
def initialize(@age = 0)
end
end
Person.new("a")
第6行中的错误:实例化“Person:Class#new(String)”
第2行:Person的实例变量'@age'必须是Int32,而不是String
这项功能是最近才添加的,文档中似乎没有。这是一种方法:
class Person
def initialize(@age : Int32 = 0)
end
end
请注意,默认情况下,该类型暗示与默认值的类型相同。例如:
class Person
def initialize(@age = 0)
end
end
Person.new("a")
第6行中的错误:实例化“Person:Class#new(String)”
第2行:Person的实例变量'@age'必须是Int32,而不是String