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

Ani*_*XTN 1 ruby

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

def capitalize(string) 
  puts "#{string[0].upcase}#{string[1..-1]}"
end
Run Code Online (Sandbox Code Playgroud)

axi*_*iac 7

string[0]是一个包含第一个字符的新字符串string.
事实上,它是语法糖string.[](0),即通过参数调用存储在变量中String#[]String对象上的方法.string0

String#[]方法还接受Rangeas参数,以提取子字符串.在这种情况下,范围的下限是子字符串开始的索引,上限是子字符串结束的索引.正值计算字符串开头的字符(以字母开头0),负值计算字符串末尾的字符(-1表示最后一个字符).

call string[1..-1](string.[](1..-1))返回一个新的字符串,该字符串初始化为子字符串string,以string(1)的第二个字符开头,以其最后一个字符结束.

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

阅读有关使用的字符串访问单个字符和子字符串的不同方法的更多信息String#[] method.