maya,mel,eval,stringarray

本文详细介绍了在MEL脚本语言中如何正确地构造并传递字符串数组给特定函数。针对不同情况提供了两种实现方式,并通过具体示例对比了它们的区别及潜在问题。
mel里,当要eval("client()"),并且要传递stirngarray参数给函数client()时,正确的写法应该是:
global proc intermediator_good(string $array[])
{
    print(">intermediator(): ["+stringArrayToString($array, ",")+"], size="+size($array)+"\n");

    if( size($array) == 0 ){
        $cmd = "client({})";
    }else{  
        $cmd = "client({\""+stringArrayToString($array,"\", \"")+"\"})";
    }
    eval $cmd;
}
要命的是,如果误写成:
global proc intermediator(string $array[])
{
    print(">intermediator(): ["+stringArrayToString($array, ",")+"], size="+size($array)+"\n");

    $cmd = "client({\""+stringArrayToString($array,"\", \"")+"\"}) \n";
    eval $cmd;
}

在client()里:
global proc client(string $array[])
{
    print(">client(): ["+stringArrayToString($array, ",")+"]\n");
}

对于$array={""}和$array={}两种情况,print出来的信息是一样的(都是[])。调试的时候会被误导


转载于:https://www.cnblogs.com/yaoyansi/p/3162419.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值