这个类中的<
符号是什么,它的目的是什么?
class CommentSerializer < BaseSerializer
def initialize(@comment : Comment)
end
def render
{body: @comment.body}
end
end
https://crystal-lang.org/api/0.33.0/Class.html#T.class):BoolforallT-instance-method
不确定这是否正确或它的含义:
返回此类是继承还是包含其他。
<
表示继承。您应该将class CommentSerializer < BaseSerializer
读作类CommentSerializer
派生自或基于BaseSerializer
。CommentSerializer
继承了BaseSerializer
的行为:它获取其所有实例变量及其所有方法,而无需再次将其写出。这种继承的想法在所有面向对象的编程语言中都是通用的,因为它是表达代码重用的有用方法:BaseSerializer
中的所有内容在其子类中保持不变,并且每个子类添加内容/进行更改以根据特定目的定制通用行为。
您找到的<
符号是一种测试此关系的方法。它是一个表达式,与声明中的<
(内置于语法中)不同。这个想法是你定义了CommentSerializer < BaseSerializer
,所以测试CommentSerializer < BaseSerializer
将返回 true。符号的重用是一个助记符。
语言参考