def my_method(options = {}) # ... end # => Syntax error in ./src/auto_harvest.cr:17: for empty hashes use '{} of KeyType => ValueType'
虽然这是有效的Ruby似乎不在Crystal中,但我怀疑是因为打字 . 如何告诉编译器我想默认为空哈希?
使用默认参数(如在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中完全不鼓励使用默认/命名参数的哈希值
(编辑为包含样本而不是链接到文档)
似乎错误包含了我需要的所有信息,我需要指定键的类型和哈希的值 .
def my_method(options = {} of Symbol => String) # ... end
在_285888中也很明显 .
2 回答
使用默认参数(如在Ruby中):
在Crystal中完全不鼓励使用默认/命名参数的哈希值
(编辑为包含样本而不是链接到文档)
似乎错误包含了我需要的所有信息,我需要指定键的类型和哈希的值 .
在_285888中也很明显 .