# 错误(4470)

# 错误信息

除法表达式 %1!s! 非法, 除数不是数值标量, 其类型为 %2!s!.

# 产生原因

二元重载运算符 “/” 对应的除法表达式中除数是数组, 则报出错误 4470.

# 解决方法

将二元重载运算符 “/” 对应除法表达式中除数确定为标量即可.

# 示例

model _4470_ExpressionDivisionError
  record Complex
    Real re;
    Real im;
    operator function '/'
      input Complex c1;
      input Complex c2;
      output Complex result "=c1/c2";
      annotation (Inline = true);
    algorithm 
      result := Complex((c1.re * c2.re + c1.im * c2.im) / (c2.re ^ 2 + c2.im ^ 2), (-c1.re * c2.im + c1.im * c2.re) / (c2.re ^ 2 + c2.im ^ 2));
    end '/';
  end Complex;   
  Complex x1 = Complex(2, 3);
  Complex x2[2] = {Complex(2, 3), Complex(1, 2)};  // Error: 4470
  //Complex x2 = Complex(1, 2);   // OK
  Complex x3 = x1 / x2;
end _4470_ExpressionDivisionError;