【发布时间】:2013-01-02 22:13:42
【问题描述】:
谁能告诉我以下代码中 * 的作用?
line = "name=yabbi;language=ruby;"
Hash[*line.split(/=|;/)]
谢谢。
【问题讨论】:
谁能告诉我以下代码中 * 的作用?
line = "name=yabbi;language=ruby;"
Hash[*line.split(/=|;/)]
谢谢。
【问题讨论】:
* 是 splat 运算符。它用于将数组拆分为参数列表。
line.split(/=|;/) 返回一个数组。要创建 Hash,必须将数组的每个元素作为单独的参数传递。
【讨论】:
Hash[] 不接受数组作为参数,所以我们必须将元素“分解”成单独的参数。
这是一个splat operator 阅读它。当您想要拆分数组以用作函数的参数时,您经常会看到它使用它。
【讨论】: