splat 연산자와 함께 배열을 사용할 수 있습니다 *.
EXCEPTIONS = [FooException, BarException]
begin
a = rand
if a > 0.5
raise FooException
else
raise BarException
end
rescue *EXCEPTIONS
puts "rescued!"
end
위와 같이 배열에 상수를 사용하려는 경우 (와 함께 EXCEPTIONS) 정의 내에서 정의 할 수 없으며 다른 클래스에서 정의하는 경우에도 해당 네임 스페이스로 참조해야합니다. 실제로 상수 일 필요는 없습니다.
표시 연산자
표시 연산자 *는 해당 위치에서 배열을 "압축 해제"하여
rescue *EXCEPTIONS
같은 의미
rescue FooException, BarException
배열 리터럴 내에서 다음과 같이 사용할 수도 있습니다.
[BazException, *EXCEPTIONS, BangExcepion]
이것은
[BazException, FooException, BarException, BangExcepion]
또는 인수 위치
method(BazException, *EXCEPTIONS, BangExcepion)
즉
method(BazException, FooException, BarException, BangExcepion)
[] 공허로 확장 :
[a, *[], b] # => [a, b]
루비 1.8과 루비 1.9의 차이점 중 하나는 nil.
[a, *nil, b] # => [a, b] (ruby 1.9)
[a, *nil, b] # => [a, nil, b] (ruby 1.8)
다음과 같은 경우에 적용될 것이므로 to_a정의 된 객체에주의하십시오 to_a.
[a, *{k: :v}, b] # => [a, [:k, :v], b]
다른 유형의 개체와 함께 자신을 반환합니다.
[1, *2, 3] # => [1, 2, 3]