crystal-lang - 在 Crystal 中,继承和包含有什么区别?
问题描述
在大多数 Crystal 文档中,使用类继承和<
语法(例如https://stackoverflow.com/a/61053311/2954547)。
但是,HTTP::Handler
说自定义处理程序必须包含HTTP::Handler
模块而不是从某个类继承。
我在 Crystal 文档中找不到关于include
模块应该做什么的描述,或者它与<
类的继承有何不同。
一个类包含一个模块是什么意思?
解决方案
包容也是一种继承。
主要区别实际上是扩展类型仅限于一个父级。整个程序的扩展继承图是一棵树。相反,一个类型可以包含多个模块。并且两种类型之间可以有多个包含继承路径。
推荐阅读
- android - 如何在 android 谷歌地图活动中显示两点之间的路径?
- angular - 如何处理 Angular 8 应用程序中的互联网不稳定?
- android - 通过android中的代码获取单个Application消耗的内存和Data
- java - 如何禁用 JTable 编辑?
- angular - 未捕获的错误:无法解析 ContactComponent 的所有参数:(?)
- php - PHP仅从函数中提取用户并使用forech插入db通知表
- airflow - 气流:如何修改 DAG 以回填?
- c# - 在 asp.net mvc5 中的多供应商电子商务商店中,根据商店订单限制计算购物车中的商店折扣
- javascript - 可以在es6中将css文件作为字符串导入吗?
- apache-spark - Spark kafka流无法确定分区的位置