首页 > 解决方案 > 在 Crystal 中,继承和包含有什么区别?

问题描述

在大多数 Crystal 文档中,使用类继承和<语法(例如https://stackoverflow.com/a/61053311/2954547)。

但是,HTTP::Handler说自定义处理程序必须包含HTTP::Handler模块而不是从某个类继承。

我在 Crystal 文档中找不到关于include模块应该做什么的描述,或者它与<类的继承有何不同。

一个类包含一个模块是什么意思?

标签: crystal-lang

解决方案


包容也是一种继承。

主要区别实际上是扩展类型仅限于一个父级。整个程序的扩展继承图是一棵树。相反,一个类型可以包含多个模块。并且两种类型之间可以有多个包含继承路径。


推荐阅读