我了解结构和类(和协议)如何在基本级别上工作。我有一个相当普遍的情况:结构或类似的子类
我需要具有运算符的通用值类型,这些运算符确实必须在赋值时进行复制。 这些类型具有复杂的结构,我希望能够通过子类化进行专门化,否则将会在任何地方复制代码,并且编程不好。
我试过协议和扩展,但后来因为协议不是通用的,我无法定义我想要的(通用)操作符。 如果我使用类,我不会复制作业。
今天的例子是矩阵和SquareMatrix下具有特定的方阵功能。有运营商和矩阵可以填充任何符合我的环协议。我试着用关联类型和扩展名来定义几乎所有的功能。
编辑:我真的想知道我应该编码。在矩阵情况下,我需要能够像其他任何方式一样传递方矩阵,所以子类化是唯一的选择?也许我错了。主要的问题是当我必须编写一个讨论内部价值的函数时,我必须知道泛型类型的参数来做任何有用的事情。例如,在定义加法时,我必须创建一个新的矩阵并声明它的泛型类型,但是从何时我只知道某个东西是(非泛型)协议开始,它是真正的类型是泛型的,但是尽管协议具有此关联类型,我无法把它弄出来。
解决方案感谢alexander momchliov。基本上,需要更多的工作来将代码完全移入协议扩展中,并对所有相关类型使用“Self”。在扩展中,编译器对通用类型是什么感到满意。
该代码是私人的,我很抱歉,我无法粘贴任何问题。感谢您的耐心和帮助。
邮政编码你试过的是什么,实际的问题是什么。 – shallowThought