什么是Crystal类中的

问题描述 投票:0回答:1

此类中的<符号是什么,它的用途是什么?

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

不确定这是正确的还是什么意思:

返回该类是继承还是包含其他。

crystal-lang
1个回答
3
投票

<表示继承。您应该将class CommentSerializer < BaseSerializer读为派生自基于 CommentSerializer的类BaseSerializerCommentSerializerinherits BaseSerializer的行为:它获得了所有实例变量和所有方法,而不必再次将其写出。继承的概念对于所有面向对象的编程语言都是通用的,因为它是表达代码重用的一种有用方法:BaseSerializer中的所有内容在其子类中均保持不变,并且每个子类都添加了内容/进行了更改以定制该泛型特定目的的行为。

您发现的<符号是对此关系进行测试的方法。它是一个表达式,与声明中的<(内置在语法中)不同。这个想法是您定义了CommentSerializer < BaseSerializer,因此测试CommentSerializer < BaseSerializer将返回true。符号的重用是一个助记符。

Language reference

© www.soinside.com 2019 - 2024. All rights reserved.