我一直试图找到这个问题的答案已经有一段时间了,我仍然无法找到问题的根源。
我正在使用maya (mel)
中的程序,我很难用global variables
作为在不同程序之间保存数据的工具。
我的主要问题在这里表示:
在第一个例子中,我可以根据需要替换过程中已经声明的global variable
。
但是在第二个例子中,当试图改变global variable
的值时,它表示该过程需要一个常量值。
此外,我尝试过local variable
只是稍后将其传递给global variable
,但我仍然遇到同样的问题。
global string $value[];
proc test()
{
global string $value[] = {"door", "knob"};
print ($value);
}
test();
//Result: door, knob
global string $value[];
proc test()
{
global string $value[] = `ls -sl`;
print ($value);
}
test();
//Result: Initialization of global variable "$value" requires a constant value.
等待可能的解决方案,现在一直在寻找。
答案 0 :(得分:0)
在第二个过程中尝试这个:
global string $value[];
$value = `ls -sl`;
该消息告诉您问题 - ls -sl
不是常量值,每次都会有所不同。因此你不能将它用作全局的初始值 - proc不知道$value
是否存在,所以它试图创建一个新的并且MEL不想要您要创建具有非常量值的新全局。
在任何情况下,除非您计划保持不变或想要可预测的默认值,否则不要同时声明和填充全局。这就是MEL要求你将声明与作业分开的原因。