以下代码中[0]
和[1..-1]
的含义是什么?
def capitalize(string)
puts "#{string[0].upcase}#{string[1..-1]}"
end
答案 0 :(得分:7)
string[0]
是一个新字符串,其中包含string
的第一个字符
事实上,它是string.[](0)
的语法糖,即使用参数string
调用存储在变量0
中的String#[]
对象上的方法String
。 / p>
String#[]
方法也接受Range
作为参数,以提取子字符串。在这种情况下,范围的下限是子字符串开始的索引,上限是子字符串结束的索引。正值计算字符串开头的字符(从0
开始),负值计算字符串末尾的字符(-1
表示最后一个字符)。
调用string[1..-1]
(string.[](1..-1)
)返回一个新字符串,该字符串使用string
的子字符串初始化,该字符串以string
的第二个字符开头({{1} })并以其最后一个字符结束。
放在一起,1
是string[0].upcase
的第一个字符的大写版本,string
是string[1..-1]
的其余部分(除了第一个字符之外的所有字符)。
详细了解使用String#[] method
访问字符串中各个字符和子字符串的不同方法。