我想定义一个Person
具有age
Int32 类型属性的类,并为它指定一个默认值,以防它没有提供。我知道如何做第一个:
class Person
def initialize(@age : Int32)
end
end
第二个:
class Person
def initialize(@age = 0)
end
end
但不是如何做到这两点。这可能吗 ?
我想定义一个Person
具有age
Int32 类型属性的类,并为它指定一个默认值,以防它没有提供。我知道如何做第一个:
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")
Error in line 6: instantiating 'Person:Class#new(String)'
in line 2: instance variable '@age' of Person must be Int32, not String