【发布时间】:2017-11-21 11:26:05
【问题描述】:
所以我有一个字符串formula,假设是:
let testValue = 10
let formula = "(max(testValue - 20,0) * 14) + testValue - max(testValue - 20,0)"
我可以做简单的算术、乘法、除法、减法等,但我如何将 Max 函数组合到这个字符串中?
我在想我必须将max 更改为可以子串化的内容,然后单独执行每个函数并循环遍历实例,但是有更好的方法还是那样做?喜欢|@Max(x,y)|。
另外,是否有特定的语法,因为我找不到使用 Max、Min、Sum、Avg 等的任何示例 - 也许我只是不理解文档。
//Current way
extension String {
var expression: NSExpression {
return NSExpression(format: self)
}
}
let results = formula.expression.expressionValue(with: nil, context: nil) as? Int
【问题讨论】:
标签: swift nspredicate nsexpression