type Output = Vec3;
                  
                  
                      fn mul(self, scalar: f32) -> Vec3 {
                  
                  
                          Vec3 {
                  
                  
                              x: self.x * scalar,
                  
                  
                              y: self.y * scalar,
                  
                  
                              z: self.z * scalar,
                  
                  
                          }
                  
                  
                      }
                  
                  
                  }
                  
                  
                  Как я понял перегруженные операторы не обладают свойством коммутативности =>
                  
                  
                  Vec3 * f32 - определено,
                  
                  
                  f32 * Vec3 - не определено.
                  
                  
                  Собственно, как сделать так, чтобы перегруженный оператор обладал свойством коммутативности?
                  
                  
                
Перегрузить в обратную сторону
А тут можно просто перемножить в обратном направлении
Обсуждают сегодня