当前位置: 首页 > 面试题库 >

表达式内的NSExpression自定义变量

年良骏
2023-03-14
问题内容

最近,我发现了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

Xcode 8 GM•Swift 3

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


 类似资料:
  • 本文向大家介绍Python使用自定义全局变量使用eval评估表达式,包括了Python使用自定义全局变量使用eval评估表达式的使用技巧和注意事项,需要的朋友参考一下 示例 此外,此代码不能偶然引用外部定义的名称: defaultdict例如,使用可以将未定义的变量设置为零:            

  • 我有一个来自库的方法,看起来像这样: 而接口只有一个方法定义: 不幸的是,对于我的用例,我需要和。 一种解决方案是创建一个新类来实现和,在这种情况下,我必须为每个不同的用例创建一个不同的类。 通常,如果没有,我可以将方法作为lambda调用,这样就不用创建专门的类包了。 有没有办法用接口扩展这个lambda?

  • 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。 列目录时, dir *.txt或ls *.txt中的*.txt就不是一个正则表达式,因为这里*与正则式的*的含义是不同的。 正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。正则表达式作为

  • 变量 变量的类型: AutoHotkey 中没有明确的变量类型. 然而, 只包含数字 (可以含有小数点) 的变量进行数学运算或比较时, 会被自动转换为数值. (为了提高性能, 在内部会对数字进行缓存以避免与字符串之间的转换.) 变量的作用域和声明: 除了函数中的 局部变量, 其他所有变量都是全局的; 即可以在脚本的任意位置读取或修改它们的内容. 除了在函数页面注明的情况,变量都是不需要声明的;使用

  • 这个想法是我在网站上有自定义的URL,所以我的自定义处理器将为提供的相对链接生成正确的URL。 上面的工作很好--但是,现在我希望能够在传递给处理器的值中包含变量--所以我遵循了thymeleaf文档中的示例,在生成替换URL的处理器中,我添加了StandardExpression的东西: 我希望与此添加,我将能够也添加链接如下: 这看起来真的很难看,而且可能在简单的情况下不得不重复单引号(这将是

  • 如何计算方面中的Spring Security表达式?我想我可以很容易地使用完成这项工作的类I spring框架