gpt4 book ai didi

ruby - 为什么 Ruby 让我在不指定字符串的情况下调用 String 方法?

转载 作者:数据小太阳 更新时间:2023-10-29 06:58:36 26 4
gpt4 key购买 nike

阅读时Programming Ruby ,我遇到了这个代码片段:

while gets
num1, num2 = split /,/
end

虽然我凭直觉理解它的作用,但我不理解其语法。 “split”是 String 类上的一个方法——用 Ruby 的说法,在上面的场景中,哪个字符串是“split”消息的接收者?

我可以在文档中看到“gets”将其结果分配给变量 $_,所以我的猜测是它隐含地使用 $_ 作为接收者 - 但一大堆 Google 搜索未能证实这个猜测.如果是这样的话,我很想知道在没有显式接收者的情况下调用方法的一般规则是什么。

我确实尝试了 irb 中的代码,添加了一些诊断性 puts 调用,并且我验证了实际行为是您所期望的 - num1 和 num2 获得分配的值,这些值是输入时用逗号分隔的。

最佳答案

Ruby 1.8 有一个方法 Kernel#split([pattern [, limit]])$_.split(pattern, limit) 相同,并且 gets 设置 $_ 的值。

关于ruby - 为什么 Ruby 让我在不指定字符串的情况下调用 String 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7986604/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com