这是我想到的一个思想例子:
test = 'x > 0';
while str2func(test)
Do your thing
x=x-1;
end
是否可以将整个逻辑运算存储在这样的变量中?
当然str2func
会在这里打破。如果 可能,此功能可能是其他功能。我只在test
变量内容中添加了撇号,因为我无法想到存储方法还有什么。
在向函数发送参数时,我可以看到它很有用。但大多数情况下我只是想知道,因为我以前从未在任何编程语言中看到它。
答案 0 :(得分:8)
你可以将函数的文本表示存储在变量中并对其进行评估,例如
test = 'x > 0';
eval(test)
应该导致1或0,具体取决于x的值。
但你不应该使用eval
的原因太多,因为我经常在这里讨论,因为我不愿重复。您应该熟悉函数和函数句柄。例如
test = @(x)x>0
使test
成为函数的句柄,该函数测试其参数是否大于0。
许多在运行时解释的语言(与编译语言相反)具有类似的功能。