2011-09-23 15 views
5

संभव डुप्लिकेट:
Is there some kind of unseen Array termination in Ruby?
Array slicing in Ruby: looking for explanation for illogical behaviour (taken from Rubykoans.com)क्यों रूबी सरणी [सरणी। लम्बाई, गिनती] रिटर्न []?

a = %w[a b c] 
a[3, 1] # => [] 
a[4, 1] # => nil 

किसी को समझा सकते हैं क्यों एक [3, 1] रिटर्न []? क्यों शून्य इसके बजाय क्यों नहीं?

धन्यवाद।

+0

आपका मतलब है 'सरणी [array.index, array.length] '? आपका शीर्षक थोड़ा उलझन में है। – lemoncider

+0

@lemoncider हां, शीर्षक थोड़ा उलझन में है, लेकिन मैं सिर्फ यह निर्दिष्ट करना चाहता हूं कि ** array.index ** ** array.length ** के बराबर है। –

उत्तर

3

ठीक है, Ruby core documentation जैसा दिखता है केवल इसे "विशेष मामला" के रूप में चिह्नित करें। रूबी प्रोग्रामिंग लैंग्वेज (ओ रेली, 2008) के अनुसार, इस मामले पर टिप्पणी है:

a[arr_len, len] #=> [], empty array right at the end 
a[arr_len + 1, len] #=> nil, nonthing beyond that 

आगे कोई स्पष्टीकरण नहीं दिया है। तो मुझे लगता है कि आपको बस "विशेष मामला" याद रखना चाहिए।

संबंधित मुद्दे