0

我已经开始DDMathParser在我当前的项目中实现,我使用这个框架来计算公式的结果,并结合字典中给出的变量(变量替换)。

是否可以if在公式中使用类似语句,例如 " if ($a > 0) { $b / $c } else {$b * 1000}

我假设if可以以与新函数类似的方式创建语句(如DDMathParser Wiki中所述)。如果是这样的话,如果有人能告诉我如何做到这一点,我会很高兴。

关于如何使用if语句的任何想法或提示DDMathParser

谢谢!

4

1 回答 1

1

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)

然后自己处理。

于 2012-12-18T17:12:43.883 回答