首页 > 解决方案 > Ruby:使用括号和字符串键访问字符串中的字符

问题描述

有人可以解释一下这里发生了什么吗?请参阅注释行。

> test = "This is a test"
 => "This is a test" 
> test["is"] # What happens here?
 => "is"

我知道可以通过整数索引访问字符串中的字符。但是显示的代码片段中使用了什么样的语言功能?

标签: ruby

解决方案


您正在调用[]一个传递参数的字符串,并且它正在返回给定该参数的事件,正如文档所说:

如果给出了 match_str,则如果它出现在字符串中,则返回该字符串。

它的工作原理是这样的:

p "This is a test"["is"]     # "is"
p "This is a test"["is not"] # nil

如果给定的参数是一个字符串,它将返回它在接收器中的第一次出现,否则,它只返回 nil。

每当您遇到这样的疑问时,请先检查问题中的元素;你有一个接收器(一个字符串),你正在调用一个方法([])并且你正在传递一个参数(也是一个字符串):

"This is a test"["is"]
  |             |  |
  |             |   --- # argument
  |              ------ # method
   -------------------- # receiver

所以,首先要做的是检查你正在处理什么样的对象;然后您可以检查方法的定义位置,然后检查您正在使用的参数。


推荐阅读