2017-03-24 21 views
-2

我正在看一個代碼的例子,並感到困惑。這個ruby代碼中的[-1,1]是什麼?

def self.type(input) 
    input.strip! 
    return 'question' if input[-1,1] == '?' 
end 

因此,input [-1]有意義,它檢查最後一個字符是否是問號。 1是做什麼的?此外,所有示例測試都沒有通過1

+0

你知道什麼方法是,爲什麼不乾脆[查找文檔中的參數](http://ruby-doc.org/core- 2.4.1/String.html#方法-I-5B-5D)? – coreyward

+0

你能解釋一下文檔中的*完全不清楚嗎?這樣一來,Ruby開發人員可以爲將來的讀者改進文檔,但只有當您確實告訴他們*哪裏*,* how *和* why *現有文檔不能幫助您回答這個問題時。 –

+0

我沒有檢查文檔。 –

回答

3

input[-1,1]表示從最後一個字符中讀取1個字符。它給出了與input[-1]相同的結果,因爲您只讀取最後一個字符的1個字符。

看一些例子來了解更多:

❯ irb 
2.3.0 :001 > input = 'lenin' 
=> "lenin" 
2.3.0 :002 > input[-1] 
=> "n" 
2.3.0 :003 > input[-1,1] 
=> "n" 
2.3.0 :004 > input[-2] 
=> "i" 
2.3.0 :005 > input[-2, 1] 
=> "i" 
2.3.0 :006 > input[-2, 2] 
=> "in" 
2.3.0 :007 > input[-2, 3] 
=> "in"