gpt4 book ai didi

Ruby 运算符和方法调用

转载 作者:太空宇宙 更新时间:2023-11-03 16:51:09 26 4
gpt4 key购买 nike

假设我们有一个类

class Foo
def + (element); end
def add (element); end
end

现在我们可以像这样调用这两个方法:

foo = Foo.new
foo.+('bar')
foo.add('bar')

这是合理的。这是调用方法的正确方法。

我的问题是:为什么我们可以这样做:

foo + 'bar'

但不是:

foo add 'bar'

Ruby 是否区分方法名是否实际上是运算符重载?它是如何工作的?

最佳答案

这是许多人称为 Ruby 语法糖的东西之一。该语言可以识别这些数学运算符以及其他 ASCII 符号运算符,例如 <<。插入运算符,并允许使用空格调用它们而不使用方法点。这允许更自然地使用该方法。

你的 #add method 不被 Ruby 识别为标准运算符,因此不执行此语法帮助。

关于Ruby 运算符和方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21368542/

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