【问题标题】:Terminology for a generic type with type parameter filled in填充了类型参数的泛型类型的术语
【发布时间】:2020-05-21 01:40:16
【问题描述】:

填充类型参数的泛型类型的正确术语是什么?这是一个非常常见的结构;我很惊讶地意识到我不确定它应该叫什么。

换一种说法:

如果square 是一个函数,那么square(2) 是一个函数调用

如果List泛型类型,那么List<Int> 是...?

(如果重要的话,我在 Kotlin 工作,但在我看来,对于许多支持泛型的语言来说,术语应该是相同的。)

【问题讨论】:

    标签: generics kotlin terminology


    【解决方案1】:

    在 Java 中,

    所有支持参数的类型都是通用类型。

    编码时,提供类型参数以创建参数化类型。

    如果没有提供类型参数,则会创建原始类型。

    【讨论】:

      【解决方案2】:

      在 C++ 中,std::vector<int>std::vector<T>特化std::array<int, N>std::array<T, N>部分特化

      但是,这些是模板。正如 jaco0646 所提到的,使用泛型的语言(例如 Java 和 Rust)通常称它们为parameterized

      Haskell 中最接近的等价物是类型类,它(有时)将参数化泛型代码的等价物称为实例。 (在面向对象的语言中,实例是指类的对象,但 Haskell 没有类,所以没有歧义。)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多