![]() |
1
23
从1.27开始,没有别的办法了。在另一个板条箱中定义的类型上定义固有方法是不可能的。
您可以使用所需的方法定义自己的trait,然后为外部类型实现该trait。这种模式被称为
延伸性状
. 按照惯例,扩展特性的名称以
其他库也可以导出扩展特性(例如:
byteorder
). 但是,对于任何其他特性,您需要将特性的方法纳入
|
![]() |
2
4
不。目前,为另一个板条箱中定义的类型编写新方法的唯一方法是通过traits。但是,这似乎太麻烦了,因为您必须编写特性定义和实现的代码。 在我看来,要走的路是使用自由函数而不是方法。这至少可以避免由特质造成的重复。 |
![]() |
newbie99 · 如何向字符串片段暗示特定数量的字节 2 年前 |
![]() |
David · `match的手臂类型不兼容 2 年前 |
![]() |
Lucas Lima · 如何打印对象的元素? 2 年前 |
![]() |
Xavi Font · 访问父结构中可选对象/结构/变量的属性 2 年前 |
![]() |
Kai · 有什么方法可以轻松优化VSCode中的锈迹? 2 年前 |