作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
下面的 Ruby 代码导致:unknown keyword: a (ArgumentError)
:
def test(x={}, y: true); end
test({a:1})
为什么?我希望 test(**{a:1})
会发生这种情况,但我不明白为什么我的哈希会在没有双拼音的情况下自动扩展。
最佳答案
由于 x 是可选的,因此 hash 移至 kwarg 参数。在这种情况下,未指定的关键字会引发错误:
def foo(name:)
p name
end
foo # raises "ArgumentError: missing keyword: name" as expected
foo({name: 'Joe', age: 10}) # raises "ArgumentError: unknown keyword: age"
查看 this文章
关于Ruby 自动将 Hash 扩展为关键字参数而无需双拼,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31463901/
我是一名优秀的程序员,十分优秀!