表达式内的NSExpression自定义变量

最近,我发现了NSExpression类,我想知道是否有可能评估表达式中的自定义变量。

像这样:

5+4+MYVAR*5

我想用自定义Double值替换此MYVAR字符串。

如果不存在,我将使用循环和类似方法,但希望有一个内置的(并且更快)的解决方案。

谢谢。

回答:

let myInt = 4

let myFormulaInt = "5 + 4 + myInt * 5"

let intElements = ["myInt": myInt]

let myResultInt = NSExpression(format: myFormulaInt).expressionValueWithObject(intElements, context: nil).integerValue

println(myResultInt) // 29

let myDouble = 2.5

let myFormulaDouble = "5 + 4 + myDouble * 5"

let doubleElements = ["myDouble": myDouble]

let myResultDouble = NSExpression(format: myFormulaDouble).expressionValueWithObject(doubleElements, context: nil).doubleValue

println(myResultDouble) // 21.5

let myInt = 4

let myFormulaInt = "5 + 4 + myInt * 5"

let intElements: [String:Int] = ["myInt": myInt]

let myResultInt = NSExpression(format: myFormulaInt).expressionValue(with: intElements, context: nil) as! Int

print(myResultInt) // 29

let myDouble = 2.5

let myFormulaDouble = "5 + 4 + myDouble * 5"

let doubleElements: [String: Double] = ["myDouble": myDouble]

let myResultDouble = NSExpression(format: myFormulaDouble).expressionValue(with: doubleElements, context: nil) as! Double

print(myResultDouble) // 21.5

以上是 表达式内的NSExpression自定义变量 的全部内容, 来源链接: utcz.com/qa/410361.html

回到顶部