В документации указано:
Hash["a", 100, "b", 200] #=> {"a"=>100, "b"=>200}
Hash["a" => 100, "b" => 200] #=> {"a"=>100, "b"=>200}
{ "a" => 100, "b" => 200 } #=> {"a"=>100, "b"=>200}
Вы не можете передать массив методу Hash[]
в соответствии с документацией, поэтому сплат - это просто способ взорвать массив fruit
и передать его элементы как обычные аргументы Hash[]
метод. Действительно, это очень распространенное использование оператора splat.
Круто то, что если вы попытаетесь передать нечетное количество аргументов в Hash, вы получите исключение ArgumentError
:
fruit = ["apple","red","banana","yellow","orange"]
#=> ["apple", "red", "banana", "yellow", "orange"]
Hash[*fruit] #=> ArgumentError: odd number of arguments for Hash