我已经开始在我的当前项目中实现DDMathParser,我使用这个框架结合字典中的变量(变量替换)计算公式的结果。
是否可以在公式中使用类似if语句的内容,例如"if ($a > 0) { $b / $c } else {$b * 1000}“?
我假设if语句可以以与新函数类似的方式创建(如DDMathParser维基中所描述的)。如果是这样的话,如果有人能教我怎么做,我会很高兴。
关于如何在if中使用DDMathParser语句的任何想法或提示
谢谢!
发布于 2012-12-18 17:12:43
DDMathParser作者这里..。
这是不可能的,但不是因为你认为的原因。DDMathParser可以很好地解析if。这是它会有问题的花括号。你也许可以:
if ($a > 0) ($b / $c) else ($b * 1000)这将被分析为:
if($a > 0) * ($b / $c) * else($b *1000)它是NSLogged,即:
multiply(multiply(if(l_gt($a,0)),divide($b,$c)),else(multiply($b,1000)))所以,你可以这样做,但如果你自己尝试去处理范围的话,那将是一件非常痛苦的事情。我认为,将字符串预解析为多个部分可能更容易一些:
if ($a > 0) => if(l_get($a, 0))
($b / $c) => divide($b, $c)
($b * 1000) => multiply($b, 1000)然后自己处理。
https://stackoverflow.com/questions/13935508
复制相似问题