30.1. Unární operátor *

30.1.1. splat, expanze polí array expansion

Symbol unárního operátoru * zastupuje dva unární operátory splat a unsplat. Pokud je použit při definici metody, má význam operátoru unsplat. Způsobí že do argumentu označeném tímto operátorem, který musí být posledním argumentem, se dosadí pole vytvořené ze všech zbylých argumentů při volání metody.

def bar first, *rest
    p first, rest
end
bar 1,2,3,4

$ irb
irb(main):001:0> def bar prvni, *zbytek
irb(main):002:1> p prvni, zbytek
irb(main):003:1> end
nil
irb(main):004:0> bar 1,2,3,4
1
[2, 3, 4]
nil
irb(main):005:0> bar 1
1
[]
nil
irb(main):006:0>

Při volání metody však funguje opačne, jako operátor splat

def foo a, b
    p a, b
end
foo *['don', 'key']  # je to samé jako
foo 'don', 'key'
Licence Creative Commons
Tento dokument Ruby, jehož autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .