gpt4 book ai didi

ruby - 为什么在 Ruby 中 1+1 有效,而其他方法无效?

转载 作者:数据小太阳 更新时间:2023-10-29 08:32:07 25 4
gpt4 key购买 nike

在 Ruby 中,可以将 1.+(1) 重写为 1 + 1。但是,对于其他方法,如1.to_s,则不能这样做,将它们重写为1to_s1 to_s。这是为什么?

换句话说,为什么可以调用1+1,而不能调用其他方法?除了其他方法之外,这是解释器允许的精确度吗?

请注意,这适用于其他数学运算符/方法,例如 /**

最佳答案

a + b 就是 syntactic sugar对于方法调用 a.+(b) (其他运算符也是如此)。这种转换是在解析期间完成的。可以看看here, in ruby's bison grammar .特别是 rule for a + b使用call_bin_op构造抽象语法树节点返回,即a macro that forwards to call_bin_op_gen ,这calls NEW_CALL ,这builds an AST node representing a method call .

关于ruby - 为什么在 Ruby 中 1+1 有效,而其他方法无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22650670/

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