1

我想定义一个Person具有ageInt32 类型属性的类,并为它指定一个默认值,以防它没有提供。我知道如何做第一个:

class Person

  def initialize(@age : Int32) 

  end

end

第二个:

class Person

  def initialize(@age = 0) 

  end

end

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

4

1 回答 1

4

执行此操作的功能是最近才添加的,文档中似乎缺少它。这是这样做的方法:

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
于 2016-12-22T19:23:25.777 回答