我为单位转换编写了一些数字扩展名,例如:
public extension Double {
public var dbamp: Double {
return pow(10, self/20)
}
}
public extension Int {
public var dbamp: Double {
return Double(self).dbamp
}
}
用于从db值计算线性增益乘数。问题是,直觉上我期望(并且希望能够编写)像-6.dbamp
这样的东西来返回值为(-6).dbamp
的结果,而结果是{{1} }。
负整数文字通过在整数文字前加一个减号( - )来表示,如-42。
但是,-(6.dbamp)
似乎并不是一个整数文字,而是一个涉及-42
运算符和整数文字-
的表达式。也许这种行为并不是Swift特有的。
我认为有可能以某种方式使用自定义优先级/关联性来获得所需的行为,但是我觉得相当紧张做任何可能导致潜在的模糊错误的事情,因为一些语法糖。如果有必要改变42
运算符的优先级,那么这显然不值得付出代价......