gpt4 book ai didi

ruby - 当我们在 ruby​​ 中使用运算符时会发生什么

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

据我了解,当我们在 ruby​​ 中添加两个数字时,将在当前对象上调用“+”方法,并将参数作为下一个对象。

>> 2 + 3
=> 5



>> 2.+(3)
=> 5

这两个例子有什么相同之处?我们可以在没有点运算符的情况下调用对象上的方法吗?第一个例子是怎么发生的?如果是这种情况,3 可能是一种在“+”方法上调用的方法方法吗? (这甚至没有意义)

最佳答案

Ruby 知道 + 是一个运算符,因为语言的语法是这样说的。还有一个一元 + 运算符(被转换为 +@ method )并且该语言的语法允许 Ruby 知道哪个是哪个。语言定义说运算符作为方法调用实现,并指定每个运算符映射到哪个方法。

你问的和问 o.m a 是如何用 调用 o 上的 m 方法是一样的a 作为参数。这正是 Ruby 语法和语义的定义方式。

即使在理论数学中,运算符也是函数。 a + b 符号实际上只是 +(a, b) 的方便符号(其中 +:R2R 或从 R×RR 的函数,对于例子)。我认为您对符号的理解过多,并认为运算符是特殊的东西,其实它们不是,它们只是计算机语言和类似数学中的函数调用。

简而言之,它之所以有效,是因为这就是 Ruby 定义的工作方式。

至于

could 3 be an method method called on '+' method ?

方面,3 是 Fixnum 对象 + 方法的参数参数>2

关于ruby - 当我们在 ruby​​ 中使用运算符时会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7936748/

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