swift - Swift 中用于数学运算的自定义运算符函数
问题描述
我想为 Int 定义一个新函数,我可以像 + 一样做同样的工作,函数名称是 plus,据我在代码中看到的,我没有弄错,但我相信我必须采取更多 Swift 的步骤接受这个函数作为数学函数,Swift 会抛出这样的编译器错误:找不到“加号” 需要帮助来解决问题,谢谢。
extension Int {
static func plus (lhs: Int, rhs: Int) -> Int {
return lhs + rhs
}
}
用例:
let value: Int = 1 plus 2
ps:我知道 plus 在 Int 组下,但我希望它可以单独访问。
解决方案
您可以使用符号来覆盖以下运算符。但是您需要先定义优先组,然后再创建中缀运算符。中缀运算符适用于左侧和右侧。
precedencegroup SumOperatorPrecedence {
lowerThan: MultiplicationPrecedence
higherThan: AdditionPrecedence
associativity: left
assignment: false
}
infix operator *&:SumOperatorPrecedence
extension Int {
static func *&(lhs: Int, rhs: Int) -> Int {
return lhs + rhs
}
}
let f = 2 *& 3
推荐阅读
- java - Spring 集成消息历史记录
- grid - 可编辑的 ALV,没有行数限制
- powershell - 在 Powershell 中完成后关闭进程
- pandas - Pandas:读取具有多个标题的 CSV
- python - 由于“没有名为 h2o4gpu.utils.murmurhash3_32 的模块”,在 python 中导入 h2o4gpu 失败
- android - Twitter API 邮递员:代码 32:无法验证您的身份
- c# - 如何打破到第二个foreachloop c#
- python - 从操作中排除列而不删除它
- java - 再次单击时如何不取消选择单选按钮?
- react-native - 反应原生捆绑失败:错误:需要 Babel“^7.0.0-0”,但加载了“6.26.3”