← Back to Ruby Course | Chapter 7: Methods | Lesson 4 of 7

Splat Operator (*args) क्या है

splat एक method को किसी भी संख्या में inputs accept करने देता है और इन्हें एक list में collect करता है, आपकी सारी groceries hold करने के लिए stretch होने वाले एक bag की तरह। यह नाम से पहले एक star से लिखा जाता है।

In this page:

  1. Splat Operator (*args)
Syntax
ruby
def method_name(*args)
  # args is an array of extra arguments
end

method_name(value1, value2, value3)

Splat Operator (*args)

* से prefixed एक parameter, जैसे *args, method के अंदर किसी भी संख्या में extra positional arguments को एक array में collect करता है।

यह एक method को arguments की एक variable संख्या accept करने देता है, दूसरी languages में variadic functions जैसा। Splat operator एक call site पर भी एक array को individual arguments में expand करने के लिए इस्तेमाल हो सकता है।

Note:
  • Splat operator दोनों तरीके से काम करता है:
  • args arguments को एक array में collect करता है
  • array एक call site पर एक array को individual arguments में expand करता है।

उदाहरण: Splat Operator (*args)

markup
def sum_all(*numbers)
  numbers.sum
end

puts sum_all(1, 2, 3)
puts sum_all(10, 20, 30, 40)

values = [5, 10, 15]
puts sum_all(*values)
Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}
आम गलतियां
  1. सीधे एक array pass करना, जैसे sum_all(values), जो एक array element देता है; sum_all(*values) इस्तेमाल करें।
  2. *numbers के बाद एक required parameter रखना और यह भूल जाना कि Ruby arguments कैसे assign करता है।
  3. यह उम्मीद करना कि कोई arguments pass न होने पर numbers empty होगा और एक error raise करेगा, जब यह बस [] है।
🔒

Chapter Quiz — Complete all 7 topics to unlock

0/7 topics done

Complete these topics first:

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.