我有这个功能:
function AddImpulse(Vector2D impulse)
{
`log("ADD IMPULSE: " $ impulse);
}
问题是我收到错误“正确的类型与'$'不兼容。看起来,虽然内置的向量类会自动强制转换为字符串,但Vector2D类只是一个没有任何运算符重载的内置结构或自动转换。
我写了一个操作符重载来帮助这种情况,但是除非我将重载声明放在对象类中(我认为不应该这样做),否则我必须在每个可能使用它的类中声明它:
static final operator(40) string $ (string A, Vector2D B)
{
return A $ string(B.x) $ ", " $ string(B.y);
}
有没有办法可以通用地做到这一点,这样我就不需要每次都这样做:
`log("ADD IMPULSE: " $ impulse.x $ "," $ impulse.Y);
虽然这在 Vector2D 的情况下还不错,但是对于较大的结构或类,这将变得很麻烦。