मैं इस समय रूबी सीख रहा हूं और मैं इस असाधारण स्थिति में आया हूं।* पैरामीटर पैरामीटर के रूप में * (तारांकन) ऑपरेटर का उपयोग करते समय मुझे "अप्रत्याशित *" त्रुटि क्यों मिल रही है?
जब मैं निम्नलिखित कोड चलाता हूं, तो मुझे नीचे दिखाया गया आउटपुट मिलता है।
कार्य कोड:
def hello(a,b=1,*c,d,e,f)
p a,b,c,d,e,f
end
hello(1,2,3,4,5)
कार्य संहिता आउटपुट:
1
2
[]
3
4
5
हालांकि, कोड संपादन ताकि पैरामीटर 'ई' पकड़ सभी पैरामीटर है, मैं पर नीचे नीचे दिखाया गया त्रुटि।
असफल कोड:
def hello(a,b=1,c,d,*e,f)
p a,b,c,d,e,f
end
hello(1,2,3,4,5)
असफल कोड आउटपुट:
a.rb:1: syntax error, unexpected *
def hello(a,b=1,c,d,*e,f)
^
a.rb:1: syntax error, unexpected ')', expecting '='
a.rb:3: syntax error, unexpected keyword_end, expecting end-of-input
मैं Ubuntu पर गहरे लाल रंग का 2.3.1p112 (2016/04/26 संशोधन 54768) का उपयोग कर रहा हूँ।
मुझे यह जानने में दिलचस्पी है कि कोड का दूसरा स्निपेट क्यों विफल रहता है।
संपादित करें:
निम्नलिखित कोड के साथ-साथ विफल रहता है।
def hello(a,b=1,c,d,e,*f)
p a,b,c,d,e,f
end
hello(1,2,3,4,5)
और मैं एक ऐसी ही त्रुटि
a.rb:1: syntax error, unexpected *
def hello(a,b=1,c,d,e,*f)
^
a.rb:3: syntax error, unexpected keyword_end, expecting end-of-input
अंत में एक स्प्लट ऑपरेटर का उपयोग करना मेरे लिए समझ में नहीं आता है। – fl00r
सच है। यह पठनीय नहीं है, लेकिन इसे पार्स करना संभव है, और रुबी कुछ मामलों में करता है। –
@ fl00r मैंने निम्नलिखित विधि परिभाषा की कोशिश की और मुझे एक ही त्रुटि मिल गई। डीफ़ हैलो (ए, बी = 1, सी, डी, ई, * एफ) – Steve