0

私は現在のプロジェクトで実装を開始しDDMathParser、このフレームワークを使用して、辞書で指定された変数と組み合わせて数式の結果を計算します(変数置換)。

if数式でステートメントのようなものを使用することは可能でしょうif ($a > 0) { $b / $c } else {$b * 1000}か?

ステートメントは、新しい関数( DDMathParser Wikiifで説明されている)と同様の方法で作成できると思います。もしそうなら、誰かが私にこれを行う方法を教えてくれたら嬉しいです。

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 に答える