structural typing and norminal typing

Let’s Summarize #

编程语言中的类型系统,可以分为structural typing和norminal typing。什么意思呢?就是类型检查器在进行类型比较的时候,前者是通过类型的结构来判断是否相等,后者是通过类型名进行比较。像c\c++\java主要是使用的norminal typing,而go、ocama、haskell主要是使用了structural typing。 其实在同一种编程语言里面,也是可以同时采用这两种特性的,比如有种语言针对class是采用的norminal typing,对于object则是采用的structural typing。

Source Analysis #

References #

  1. https://medium.com/@thejameskyle/type-systems-structural-vs-nominal-typing-explained-56511dd969f4#768b