如何为方法参数设置默认值
How to set a default value for a method argument
def my_method(options = {})
# ...
end
# => Syntax error in ./src/auto_harvest.cr:17: for empty hashes use '{} of KeyType => ValueType'
虽然这是有效的 Ruby 但似乎不在 Crystal 中,我怀疑这是因为打字。我如何告诉编译器我想默认为空哈希?
看来错误有我需要的所有信息,我需要指定哈希的键和值的类型。
def my_method(options = {} of Symbol => String)
# ...
end
在docs中也说得很清楚了。
使用默认参数(如 Ruby):
def my_method(x = 1, y = 2)
x + y
end
my_method x: 10, y: 20 #=> 30
my_method x: 10 #=> 12
my_method y: 20 #=> 21
在 Crystal
中完全不鼓励对 default/named 参数使用哈希
(编辑以包含示例而不是链接到文档)
def my_method(options = {})
# ...
end
# => Syntax error in ./src/auto_harvest.cr:17: for empty hashes use '{} of KeyType => ValueType'
虽然这是有效的 Ruby 但似乎不在 Crystal 中,我怀疑这是因为打字。我如何告诉编译器我想默认为空哈希?
看来错误有我需要的所有信息,我需要指定哈希的键和值的类型。
def my_method(options = {} of Symbol => String)
# ...
end
在docs中也说得很清楚了。
使用默认参数(如 Ruby):
def my_method(x = 1, y = 2)
x + y
end
my_method x: 10, y: 20 #=> 30
my_method x: 10 #=> 12
my_method y: 20 #=> 21
在 Crystal
中完全不鼓励对 default/named 参数使用哈希(编辑以包含示例而不是链接到文档)