rust实现wss访问_没有类只有接口的语言(rust)如何实现继承又避免代码重复?

rust没有类只有接口, 不过接口可以继承也可以为method定义默认实现, 可是接口只能声明method不能声明成员属性, 于是default method里也不能直接访问成员属性

如果某些default method一定要访问成员属性才能实现的话, 除了在接口里写一大堆的getter/setter外有什么方法能解决这个问题呢?

现在用getter/setter写出来是这样下面↓这样, 然后每次impl都要复制一大段的getXXX/setXXX...

pub trait Sprite2D: Sprite {

fn get_position(&self) -> Vector2D;

fn set_position(&mut self, p: Vector2D);

fn get_direction(&self) -> f64;

fn set_direction(&mut self, d: f64);

fn get_scale_x(&self) -> f64;

fn set_scale_x(&mut self, sx: f64);

fn get_scale_y(&self) -> f64;

fn set_scale_y(&mut self, sy: f64);

fn get_matrix(&self) -> Matrix2D {

let position = self.get_position();

let mat_s = Matrix2D::create_scale(self.get_scale_x(), self.get_scale_y());

let mat_r = Matrix2D::create_rotate(self.get_direction());

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值