1

如何将哈希、字符串、数组和符号传递给 Ruby 中的函数?我试过这样:

func key: 'value', 'string', ['some', 'array'], :asymbol

这不起作用。

4

3 回答 3

3

您需要使用括号在哈希后传递其他参数。它们只能隐含在方法的最后一个参数中。

func({key: 'value'}, 'string', ['some', 'array'], :asymbol)
于 2012-12-31T15:25:20.763 回答
1

{}如果在它之后还有其他参数,则需要围绕散列。

# this will work
func({key: 'value'}, 'string', ['some', 'array'], :asymbol)

因此,将哈希类型视为方法签名中的最后一个参数是很常见的。只需更新您的方法以最后接受哈希。

# this will work, too
func 'string', ['some', 'array'], :asymbol, key: 'value'
于 2012-12-31T15:26:48.267 回答
0

你的语法不好。请使用括号和方括号:

func({key: "val"}, 'str', [1, 2], :sym)

否则,语言只是看到胡言乱语。

于 2012-12-31T15:28:17.763 回答