我很好奇哪些静态类型语言没有泛型支持
(以及在较小程度上哪些语言历史上没有泛型),以及它们如何处理它。
用户是否只是四处 throw ?是否有一些特殊的基础集合(如列表和字典)允许这些类型是通用的?
为什么这些语言没有泛型?是为了避免潜在的复杂性还是其他原因?
最佳答案
C——和历史上的 C++,在它被称为 C++ 之前——要求您手动将“泛型”类型扩展为非泛型(即 C 预处理器宏等效于 C++ 模板)或转义类型系统(即空指针)。
但是,数组(列表)被视为复合类型而不是单一类型。例如,您可以拥有一个短裤数组,但不能将其视为字符数组甚至是 long 数组。
这在 C 中并不是一个真正的大问题,尽管有时不方便。放在上下文中,它确实代表了 40 年前的权衡。
关于generics - 没有泛型,静态类型语言如何处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3880465/