3

これは私が考えていることの考えの例です:

test = 'x > 0';

while str2func(test)
   Do your thing
   x=x-1;
end

このような変数に論理演算全体を格納することは可能ですか?

もちろん、str2funcここで壊れます。可能であれば、この関数別のものになる可能性があります。testまた、格納方法が他に何であるかを考えることができないため、変数の内容にアポストロフィを追加しただけです。

関数などに引数を送信するときに便利です。しかし、ほとんどの場合、私はそれがどのプログラミング言語でも行われるのを見たことがないので、疑問に思っています。

4

1 に答える 1

8

たとえば、関数のテキスト表現を変数に格納して評価することができます。

test = 'x > 0';
eval(test)

xの値に応じて、結果は1または0になります。

しかし、あなたも理由のために使うべきではありません-私が繰り返しわざわざするために、ここでしばしばSOでカバーされます。eval代わりに、関数と関数ハンドルに精通する必要があります。例えば

test =  @(x)x>0

test引数が0より大きいかどうかをテストする関数へのハンドルを作成します。

コンパイルされた言語とは対照的に、実行時に解釈される多くの言語には、同様の機能があります。

于 2012-06-21T15:19:29.020 に答える