<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />嗨,
我有一个函数,我试图在循环内多次运行变量的每个唯一值。当我在循环之外运行它时,一切都很好,并且当我在没有函数调用的情况下运行它时,循环运行正常。尝试用不同的Eval包装它的各个部分,虽然它没有破坏任何东西它也没有帮助。
第一次迭代运行正常,runBT的结果是正确的。如果我运行runBT(“clstr2”,1);和runBT(“clstr2”,2);在循环之外,它每次都返回正确的结果。如果我在循环中注释掉runBT,则显示i = 1然后i = 2,按预期迭代两次。如果没有它注释掉它会正确运行一次然后退出,在第一次迭代后显示“循环结束”没有任何错误。
clust2vals =关联数组(dt:clstr2)<< get keys;
n = N项(clust2vals);
显示(N); // n = 2
节目(clust2vals [1]); // = 1
节目(clust2vals [2]); // = 2
for(i = 1,i <= n,i ++,
显示(ⅰ);
myab = runBT(“clstr2”,clust2vals );
秀(myab)
);
show(“循环结束”);
我的猜测是runBT函数正在修改具有全局范围的i或n变量。您可以通过在函数中使用局部变量或使用命名空间来避免这种情况。