Squeak Smalltalk:为什么在inspect窗口中修改分子和分母值后,分数不会减少?
a是一个分配了分数Squeak Smalltalk:为什么在inspect窗口中修改分子和分母值后,分数不会减少?,smalltalk,squeak,Smalltalk,Squeak,a是一个分配了分数12/24的变量1/2是打印时的答案。现在打开inspect弹出窗口,更改分子和分母的值,并猜测答案与之前相同,1/2。真正发生的是输出保持在12/24,这对我来说有点奇怪 我录制了一段视频来帮助理解这个问题 为什么在“检查”窗口中修改分子和分母值后,分数不会减少???我的答案是基于法罗方言的,我相信“吱吱声”并没有太大的不同。 因为你在第一次除以整数。 有来自Integer的代码片段>>/ a := 12 / 24. 注意调用reduce方法 如果在Inspector工具
12/24
的变量<代码>1/2是打印时的答案。现在打开inspect弹出窗口,更改分子和分母的值,并猜测答案与之前相同,1/2
。真正发生的是输出保持在12/24
,这对我来说有点奇怪
我录制了一段视频来帮助理解这个问题
为什么在“检查”窗口中修改分子和分母值后,分数不会减少???我的答案是基于法罗方言的,我相信“吱吱声”并没有太大的不同。 因为你在第一次除以整数。 有来自Integer的代码片段>>/
a := 12 / 24.
注意调用reduce方法
如果在Inspector工具中更改分母/命名器后调用reduce方法,分数对象也将被减少。您描述的行为是正确的,并且是预期的行为 作为开发人员,您可以通过两种方式修改对象:
分母>0
(分子gcd:分母)=1
当然,有一些私有方法应该小心处理(即,只能通过公共方法发送),但一般的想法是,直接操纵对象是一件好事,没有任何障碍或保护措施 您好,请尝试描述您的问题,不要让人们访问youtube。您如何尝试更改这些值?您是否应用更改?“回答”是什么意思?你的意思是
成绩单秀:a
还是类似的?您是否尝试过调试,即逐步检查对象的打印方法?请参阅Bert Freudenberg的答案,该答案回答了为什么在手动创建分子和分母时分数减少不会自动发生。但仍然不知道为什么。
(Fraction numerator: self denominator: aNumber) reduced