全局变量的初始化需要恒定值

时间:2018-05-14 14:46:53

标签: maya mel

我一直试图找到这个问题的答案已经有一段时间了,我仍然无法找到问题的根源。

我正在使用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.

等待可能的解决方案,现在一直在寻找。

1 个答案:

答案 0 :(得分:0)

在第二个过程中尝试这个:

 global string $value[];
 $value = `ls -sl`;

该消息告诉您问题 - ls -sl不是常量值,每次都会有所不同。因此你不能将它用作全局的初始值 - proc不知道$value是否存在,所以它试图创建一个新的并且MEL不想要您要创建具有非常量值的新全局。

在任何情况下,除非您计划保持不变或想要可预测的默认值,否则不要同时声明和填充全局。这就是MEL要求你将声明与作业分开的原因。