Ruby中的[0]和[1 ..- 1]是什么?

时间:2018-02-06 16:59:28

标签: ruby

以下代码中[0][1..-1]的含义是什么?

def capitalize(string) 
  puts "#{string[0].upcase}#{string[1..-1]}"
end

1 个答案:

答案 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} })并以其最后一个字符结束。

放在一起,1string[0].upcase的第一个字符的大写版本,stringstring[1..-1]的其余部分(除了第一个字符之外的所有字符)。

详细了解使用String#[] method访问字符串中各个字符和子字符串的不同方法。