类型擦除是计算机程序设计时,在编译期明确去掉所编程序(某部分)的
类型系统。
操作语义不需要程序伴随着类型,这称作“类型擦除语义”(type-erasure semantics)。 类型擦除语义的一种可能是通过抽象原理,确保程序在运行时执行不依赖类型信息。
与之相对的是类型传递语义(type-passing semantics)。如通过
具体化。类型擦除的逆操作是类型推断。
类型推论、类型推断、或隐含类型,是指
编程语言在编译期中能够自动推导出值的
数据类型的能力,它是一些
强静态类型语言的特性。一般而言,函数式编程语言也具有此特性。自动推断类型的能力让很多编程任务变得容易,让程序员可以忽略类型标注的同时仍然允许类型检查。
具有类型推论的语言有:
Rust,
Haskell,
Cayenne,Clean,ML,
OCaml,
Epigram,Scala,
Nemerle,
D,
Chrome,Visual Basic 2008和Boo。计划支持类型推论的有Fortress,
Vala,C# 3.0,
C++11和Perl 6。