设置默认属性和属性类型

我想定义一个类 Person ,其类型为Int32的 age 属性,并在未提供的情况下为其指定默认值 . 我知道如何做第一个:

class Person

  def initialize(@age : Int32) 

  end

end

第二个:

class Person

  def initialize(@age = 0) 

  end

end

但不是如何做到这两点 . 这可能吗 ?

回答(1)

3 years ago

最近添加了执行此操作的功能,并且文档中似乎缺少此功能 . 这是这样做的方法:

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