在Ruby中传递多种数据类型?

时间:2012-12-31 15:24:11

标签: ruby syntax

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

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

这不起作用。

3 个答案:

答案 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)

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