当我们在ruby中使用操作符时会发生什么
正如我所理解的,当我们在ruby中添加两个数字时,将对当前对象调用一个“+”方法,并将参数作为下一个对象当我们在ruby中使用操作符时会发生什么,ruby,operators,operator-overloading,anonymous-methods,addition,Ruby,Operators,Operator Overloading,Anonymous Methods,Addition,正如我所理解的,当我们在ruby中添加两个数字时,将对当前对象调用一个“+”方法,并将参数作为下一个对象 >> 2 + 3 => 5 >> 2.+(3) => 5 这两个示例如何相同?我们是否可以在没有点运算符的情况下调用对象上的方法?在第一个例子中是如何发生的?如果是这种情况,那么3可能是一个调用“+”方法的方法吗?(这甚至没有意义)Ruby知道+是运算符,因为语言的语法是这样说的。还有一个一元+运算符(转换为),该语言的语法允许Ruby知道哪个是哪
>> 2 + 3
=> 5
>> 2.+(3)
=> 5
这两个示例如何相同?我们是否可以在没有点运算符的情况下调用对象上的方法?在第一个例子中是如何发生的?如果是这种情况,那么3可能是一个调用“+”方法的方法吗?(这甚至没有意义)Ruby知道
+
是运算符,因为语言的语法是这样说的。还有一个一元+
运算符(转换为),该语言的语法允许Ruby知道哪个是哪个。语言定义说,操作符作为方法调用实现,并指定每个操作符映射到哪个方法
您所问的问题与询问o.ma
如何调用o
上的m
方法,并将a
作为参数相同。Ruby的语法和语义就是这样定义的
即使在理论数学中,运算符也是函数。a+b
符号实际上只是+(a,b)
(其中+
:R2)的方便符号→R或从R×R到R的函数(例如)。我认为你对符号读得太多了,认为运算符是特殊的东西,它们不是,它们只是计算机语言和数学中的函数调用
简而言之,它之所以有效是因为Ruby就是这样定义的
至于
3可以是在“+”方法上调用的方法吗
与此相关,
3
是Fixnum对象2
上的+
方法的一个参数,Ruby知道+
是一个运算符,因为语言的语法是这样说的。还有一个一元+
运算符(转换为),该语言的语法允许Ruby知道哪个是哪个。语言定义说,操作符作为方法调用实现,并指定每个操作符映射到哪个方法
您所问的问题与询问o.ma
如何调用o
上的m
方法,并将a
作为参数相同。Ruby的语法和语义就是这样定义的
即使在理论数学中,运算符也是函数。a+b
符号实际上只是+(a,b)
(其中+
:R2)的方便符号→R或从R×R到R的函数(例如)。我认为你对符号读得太多了,认为运算符是特殊的东西,它们不是,它们只是计算机语言和数学中的函数调用
简而言之,它之所以有效是因为Ruby就是这样定义的
至于
3可以是在“+”方法上调用的方法吗
与此相关,
3
是Fixnum对象2
上的+
方法的参数或参数,a+b只是a+(b)的糖类语法。在ruby中,几乎所有的东西都是一个对象,甚至“操作符”也是一个数的方法。没有比糖语法更神奇的了。a+b只是a+(b)的糖语法。在ruby中,几乎所有的东西都是一个对象,甚至“操作符”也是一个数的方法。没有比糖语法更神奇的了