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());