你能评估Swift中的字符串吗?

时间:2015-03-11 00:34:43

标签: string swift

我有一个变量,我将一个函数存储在其中:

var x = "func myFunction(y :Int) {println(y)}"

有没有办法评估字符串并运行函数?

2 个答案:

答案 0 :(得分:18)

没有

JavaScript中没有eval()或Swift中的Java ScriptEngine

字符串评估的一个常见用途是数学表达式;如果您想评估这些,可以使用NSExpression.valueWithExpression(format: String)

let stringWithMathematicalOperation: String = "5*5" // Example
let exp: NSExpression = NSExpression(format: stringWithMathematicalOperation)
let result: Double = exp.expressionValueWithObject(nil, context: nil) as Double // 25.0

答案 1 :(得分:0)

  

是的。如果字符串包含布尔表达式,那么我也可以对此进行评估   做了这样的事情,

let stringWithMathematicalOperation: String = "true && false "
let exp: NSExpression = NSExpression(format: stringWithMathematicalOperation)
let result: Bool = exp.expressionValueWithObject(nil, context: nil) as Bool // Answer: false