我创建了一个方法,它在 (1...array.length)
范围内运行一个循环。输出总是正确的,长度大于 1,但每当我只有一个字符数组 i.e ['a']
时,输出仍然正确。这让我担心的原因是因为我不确定程序如何知道不索引 nil 数组对象...arr[1]
在长度为 1 的情况下。
def vowels_in_order?(word)
vowels = word.scan(/[aeiou]/)
(1...vowels.length).each { |index| return false if vowels[index] < vowels[index-1]}
return true
end
因此我想知道范围是否有默认行为,不会导致循环崩溃。或者可能,这是否与我的方法有关,因为那也很有见地。
这是一个循环在技术上应该如何崩溃的例子:
2.1.0 :1116 > word = "a"
=> "a"
2.1.0 :1117 > word[1] < word[0]
NoMethodError: undefined method `<' for nil:NilClass
from (irb#1):1117
最佳答案
(1...1)
和 (1...0)
都是空的(不包含任何元素),所以调用 each
对它们没有任何作用。
关于ruby - 具有相同开头和结尾的范围的默认行为是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21239461/