आप 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]