泛型编程 编辑
泛型程序设计是程序设计语言的一种风格或编程范型。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例时作为参数指明这些类型。各种程序设计语言和其编译器、运行环境对泛型的支持均不一样。AdaDelphiEiffelJavaC♯FSwiftVisual Basic .NET 称之为泛型;ML语言ScalaHaskell 称之为参数多态C++D语言称之为模板。具有广泛影响的1994年版的《Design Patterns》一书称之为参数化类型。
3
相关
模板在C++程序设计语言中,是指子程序模板与类模板,是一种参数化类型机制。Java和C#中的泛型与C++的模板大体对应,但也有一些功能上的显著差异。模板是C++的泛型编程中不可缺少的一部分。
参数多态在程序设计语言与类型论中是指声明与定义函数、复合类型、变量时不指定其具体的类型,而把这部分类型作为参数使用,使得该定义对各种具体类型都适用。参数化多态使得语言更具表达力,同时保持了完全的静态类型安全。 这被称为泛化函数、泛化数据类型、泛型变量,形成了泛型编程的基础。
在函数式编程中,单子是一种抽象,它允许以泛型编程方式构造程序。支持它的语言可以使用单子来抽象出程序逻辑需要的样板代码。为了达成这个目标,单子提供它们自己的数据类型,它表示一种特殊形式计算,与之在一起的有两个子程序,一个过程用来包装单子内“任何”基本类型的值,另一个过程用来复合那些输出单子值的函数。
在函数式编程中,函子是受到范畴论函子启发的一种设计模式,它允许泛型编程在内部应用一个函数而不改变泛化类型的结构。函子形成了更复杂的抽象如应用式函子、单子、单子的基础。

"typename"是一个C++程序设计语言中的关键字。当用于泛型编程时是另一术语"class"的同义词。在第一版 ISO 标准完成之前的原始 C++ 编译器中,typename关键字还不是 C++ 语言的一部分,当时Bjarne Stroustrup 使用class关键字作为模板参数。现在typename是首选关键字,但较旧的源代码可能仍会看到使用class关键字。这个关键字用于指出模板声明中的非独立名称是类型名,而非变量名。以下是对于泛型编程中typename两种迥然不同的用法的解释。
菲利普·李·瓦德勒是一位美国电脑科学家,以其对编程语言设计和类型论的贡献而闻名,2003年以来担任爱丁堡大学理论计算机学讲席教授。他对函数式编程背后的理论做出了许多贡献,包括函数式编程中单子的使用、纯函数式语言Haskell的设计、和XQuery声明式查询语言等。1984年,他创建了Orwell编程语言。瓦德勒参与了向Java5.0添加泛型编程的工作。
菲利普·李·瓦德勒是一位美国电脑科学家,以其对编程语言设计和类型论的贡献而闻名,2003年以来担任爱丁堡大学理论计算机学讲席教授。他对函数式编程背后的理论做出了许多贡献,包括函数式编程中单子的使用、纯函数式语言Haskell的设计、和XQuery声明式查询语言等。1984年,他创建了Orwell编程语言。瓦德勒参与了向Java5.0添加泛型编程的工作。
编译期是指程序设计中,编译器在编译源代码时的行为。包括语法分析器、语义分析、类型检查、泛型编程、代码生成等。
编译期是指程序设计中,编译器在编译源代码时的行为。包括语法分析器、语义分析、类型检查、泛型编程、代码生成等。