Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Crystal lang 设置默认属性和属性类型_Crystal Lang - Fatal编程技术网

Crystal lang 设置默认属性和属性类型

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

我想用Int32类型的
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