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