在Swift中计算字符串表达式,就像javascript的eval



我通过API在应用程序中应用动态条件。它可以是任何逻辑表达式。任务是运行手机应用程序中收到的所有条件,并根据评估结果进一步进行。

的例子:

"conditionInfos": [
{
"errorMessage": "Error message",
"condition": "@City == "xyz" AND @Hobby == ""gardening""
},
{
"errorMessage": "error",
"condition": "@CountryCode == +91 OR @CountryCode == +1",
}

我用实际值&替换实体的值(前缀@);逻辑分隔符(如有)类似于带有各自(&&, ||)符号的AND和OR。

需要对随后创建的字符串表达式求值。

我检查了swift中的nexpression,但它只适用于数学表达式,并且在我的情况下抛出错误。

eval在javascript和我需要相同的Swift语言。

请指导。

与Xcode捆绑在一起的JavaScriptCore框架似乎有助于评估JS代码。下面的代码在操场上运行。

import JavaScriptCore
let context:JSContext = JSContext()
context.evaluateScript("var factorial = function(n) { if(n<0){return;}if(n===0){return 1;}return n*factorial(n-1); }")
let result: JSValue = context.evaluateScript("factorial(3)")
print(result.toInt32()) // => 6

相关内容

最新更新