次のコードを理解できません。
vowels_arr = ["a","e","i","o","u"]
(0...(vowels_arr.length - 1)).all? {|i| vowels_arr[i] <= vowels_arr[i + 1]}
-1 なしで実行しようとすると、文字列を nil と比較できないというエラーが表示されます。しかし、私が理解できないのは、なぜ-1が必要なのですか?? "..." レンジャーは、"a"、"e"、"i"、"o" (5 つのうち 4 つ) のみを評価するようにします。全体の長さは 5 で、比較対象はすでに 4 であるため、比較 (vowels_arr[i] <= vowels_arr [i+1]) は -1 なしで機能するはずです。
配列の長さの後に -1 が必要な理由を誰かに説明してもらえますか?
また、nilエラーと比較してこれを乗り越えるためのRubyの他の方法はありますか?