Can One可以消除ruby中简单运算符和复合赋值运算符之间的歧义吗?

xui*_*in. 1 ruby operators

任何人都能指出我的方向,例如,何时使用+运算符在ruby中而不是+运算符来自+运算符定义的内部?为了显示:

class A
    def +(b)
        if is_theCallActuallyACompoundAssignment?
            compoundAssignment = true
        else
            compoundAssignment = false
        end
        doOtherStuff
    end
end
Run Code Online (Sandbox Code Playgroud)

是否有内核方法?

rob*_*rit 5

这段代码:

a += 5
Run Code Online (Sandbox Code Playgroud)

获取翻译为:

a = a + 5
Run Code Online (Sandbox Code Playgroud)

您的+方法不会知道您收到了复合作业.