我已经创建了一个函数test [],如果需要的话,它也可以是一个符号测试,我试图在一个操作中实现它.test []看起来像这样:
test[]:=Button["Label",Functionality[]];
Run Code Online (Sandbox Code Playgroud)
如果直接在Manipulate []中使用,这将返回错误,但如果它包含在Dynamic或Evaluate中,则会起作用.
Manipulate[content,test[]];
Run Code Online (Sandbox Code Playgroud)
Manipulate :: vsform:Manipulate参数test []没有正确的变量规范形式.
Manipulate[content,Dynamic[test[]]]
Run Code Online (Sandbox Code Playgroud)
这个工作
Manipulate[content,Evaluate[test]]
Run Code Online (Sandbox Code Playgroud)
请注意,虽然这有效,但测试不是一个功能
Manipulate[content,Evaluate[test[]]]
Run Code Online (Sandbox Code Playgroud)
这适用于我的Mac,但不是我的PC在工作...
我认为这个问题与Manipulate是HoldAll有关,但是不明白为什么Dynamic []应该解决这个问题.此外,Evaluate []只会在某些时候起作用.
那么,为什么Dynamic []或Evaluate []是必要的呢?查看高级操作教程的自定义控制器部分,我看不到对此问题的引用,并且在其他地方找不到任何内容.