2012-06-21 35 views
3

这是我在想什么的想法例如:操作符可以存储在变量中吗?

test = 'x > 0'; 

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

是否有可能整个逻辑运算存储在这样的变量?

当然str2func会打破这里。如果它可能这个功能可能是别的东西。而且我只为test变量内容添加了撇号,因为我想不出还有什么是存储方法。

向函数等发送参数时,我可以看到它有用。但大多数情况下,我只是想知道,因为我从来没有见过用任何编程语言完成过。

回答

8

可以存储功能的文本表示在一个变量和评价它,例如

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

应导致取决于X的值1或0。

但是,你不应该使用eval出于太多的原因 - 这里经常覆盖SO,因为我打扰重复。您应该熟悉功能和功能句柄。例如

test = @(x)x>0 

使得test把手以在那里测试其参数是否大于0或不是一个函数。

与编译语言相比,在运行时解释的许多语言具有相似的功能。

相关问题