(2332 / 2332) reduced
(2332 / 2) reduced
(2332 / 322) reduced (1166/161)
(2332 / 3) reduced (2332/3)
(2332 / 2432423) reduced (2332/2432423)
看上面的代码。第一个和第二个打印出来后不起作用。弹出消息不理解窗口。第三、四、五代码都可以。结果是正确的。
为什么reduced
方法不起作用?
是否是因为简化方法无法处理像 Uko 猜测这样的整数的最终结果?
最佳答案
/
方法中的分数会自动减少。无需发送reduced
消息。
例如如果打印结果
2 / 4
您会自动获得减少的(1/2)
。
如果打印结果
2332 / 2332
它被减少到1
,这不是一个分数,而是一个整数,而整数不理解减少
消息。这就是您收到错误的原因。
分数不会自动减少的唯一情况是当您手动创建它时,如下所示
Fraction numerator: 2 denominator: 4
它将回答非简化的(2/4)
。但在普通算术表达式中,您永远不需要发送reduced
。
关于smalltalk - Squeak Smalltalk,为什么有时简化的方法不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46942103/