如何将哈希、字符串、数组和符号传递给 Ruby 中的函数?我试过这样:
func key: 'value', 'string', ['some', 'array'], :asymbol
这不起作用。
您需要使用括号在哈希后传递其他参数。它们只能隐含在方法的最后一个参数中。
func({key: 'value'}, 'string', ['some', 'array'], :asymbol)
{}
如果在它之后还有其他参数,则需要围绕散列。
# this will work
func({key: 'value'}, 'string', ['some', 'array'], :asymbol)
因此,将哈希类型视为方法签名中的最后一个参数是很常见的。只需更新您的方法以最后接受哈希。
# this will work, too
func 'string', ['some', 'array'], :asymbol, key: 'value'
你的语法不好。请使用括号和方括号:
func({key: "val"}, 'str', [1, 2], :sym)
否则,语言只是看到胡言乱语。