gpt4 book ai didi

ruby - 点语法与参数传递语法

转载 作者:太空宇宙 更新时间:2023-11-03 17:58:45 24 4
gpt4 key购买 nike

是否只能使用 object.functionName 语法调用核心 Ruby 方法?是否可以自行创建以点语法方式调用的方法?

对于这个方法:

def namechanger (name)

nametochange = name
puts "This is the name to change: #{nametochange}"

end

下面第一个有效,第二个无效。

namechanger("Steve")

"Steve".namechanger

我在 "Steve".namechanger 上遇到错误

错误是:

rb:21:in `<main>': private method `namechanger' called for "Steve":String (NoMethodError)

最佳答案

是的,你可以在String类中添加方法来达到你想要的效果;变量“self”指的是接收方法调用的对象。

class String
def namechanger
"This is the name to change: #{self}"
end
end
"Steve".namechanger # => This is the name to change: Steve

这种做法被称为 monkey patching并应谨慎使用。

关于ruby - 点语法与参数传递语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8842907/

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