在抽象基类上实现ExpressibleByStringLiteral

时间:2017-06-13 20:15:00

标签: swift literals

我有一个非常简单的类结构,其中有一个" abstract"基类$remaining_sms = substr($data, strpos($data, "|") + 1); echo $remaining_sms; 在几个具体的子类中实现。在我的例子中,基类表示对象的公共接口,因此为简单起见,大多数类型引用纯粹是Node

但是我现在要做的是在抽象Node上实现对ExpressibleByStringLiteral的支持,以便在解释Node时我可以实例化一个特定的(我选择的)具体子类作为String

问题是Node似乎并不想让我这样做,因为它需要我实现一个必需的初始化器而不是静态函数(这会更有意义,imo)。我已经能够在其中一个具体的子类上工作,但鉴于具体的类型很少被明确使用(事实上我不喜欢它),这对我来说没用。 ,因为所有内容都通过基础ExpressibleByStringLiteral类型。

我想要的是能够做到这一点:

Node

由于子类 仍然是let node: Node = "textual representation of a node" ,这并不违反任何面向对象的原则,但Swift似乎并不想让我这样做。

有没有办法解决这个问题,或者这只是Node的限制?

0 个答案:

没有答案