gpt4 book ai didi

oop - 面向对象方法的类型安全

转载 作者:行者123 更新时间:2023-12-04 05:46:26 25 4
gpt4 key购买 nike

我正在尝试考虑如何使用面向对象的方法正确解决这个问题。语言并不重要——我其实很想写代码,但我更关心的是一般原则。

我想实现一个 field : 操作 +、-、* 和/操作的“数字”集合。此外,我希望能够实现更高的操作,例如 ^ 和循环查找,其中 (1) 不需要为给定字段定义,但如果需要,可以覆盖 (2),例如出于效率原因。

这就是问题所在。 不好申报

FieldElement power (FieldElement base, FieldElement exponent)

因为我想要类型安全:不可能将有限域的成员添加到整数中。

也许我真正在寻找的是元对象或 super 接口(interface),或者将不同类联系在一起的东西(一个用于整数,一个用于 7-adics,一个用于有限域 F_4,等等)。或者也许有更好的东西。

注:答案中欢迎(甚至鼓励)代码,如果它有启发性的话,但声明可能就足够了:大概这里的每个人都可以为至少几个领域写出明显的方法。

我将提到其他对我很重要但(显然)与主要 OO 问题无关的条件:我不希望字段元素携带它们的类型信息,而且我希望它们是轻量级的(因为我可能需要处理大型字段元素数组)。这些需求可能无法实现——尽管坦率地说,我更可能在这里放弃面向对象而不是效率。但是无论如何,我都会很感激答案,因为我有兴趣了解这些问题,即使除了手头的特定问题。

最佳答案

这称为 二元法问题 .快速谷歌搜索将显示一些(大量)信息。特别是,Luca Cardelli 等人的文章“On binary methods”对这个主题进行了彻底的处理。

您可能想学习一些 Haskell,以了解实用的编程语言如何处理此问题。

编辑洛卢卡→卢卡。该死的小手机屏幕和更小的键盘;)

关于oop - 面向对象方法的类型安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10628332/

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