JSL을 사용하여 목록에서 할당된 메모리 변수를 일괄 생성하는 방법은 무엇입니까?예를 들어, 텍스트 목록이 주어지면 각 요소 앞에 문자 "r"을 추가하고 요소가 목록에 있는 순서대로 값을 할당합니다.
nam = {"A","B","C","D","E","H"};그 결과 다음 변수와 해당 할당이 생성됩니다.
rA=1;
rB=2;
rC=3;
rD=4;
rE=5;
rH=6;
감사!
스크립팅Re: JSL을 사용하여 목록에서 할당된 메모리 변수를 일괄 생성하는 방법은 무엇입니까?일이 아니야
nam = {"A", "B", "C", "D", "E", "H"};
For( i = 1, i <= N Items( nam ), i++,
"r" || nam[i] = i
);Re: JSL을 사용하여 목록에서 할당된 메모리 변수를 일괄 생성하는 방법은 무엇입니까?일방 통행:
Names Default To Here(1);
nam = {"A", "B", "C", "D", "E", "H"};
For(i = 1, i <= N Items(nam), i++,
Eval(Parse("r" || nam[i] || "=" || Char(i) || ""))
);
Show(rA, rB, rC, rD, rE, rH);그러나 내가 이것을 할 수있는 경우는 거의 없습니다. 나는 항상 이와 같은 상황을 처리하기 위해 연관 배열 또는 목록을 사용할 것입니다.
nam = {"A", "B", "C", "D", "E", "H"};
vals = {1, 2, 3, 4, 5, 6};
Show(vals[Contains(nam, "D")]);aa = Associative Array({"A", "B", "C", "D", "E", "H"},{1, 2, 3, 4, 5, 6});
Show(aa);Re: JSL을 사용하여 목록에서 할당된 메모리 변수를 일괄 생성하는 방법은 무엇입니까?에 대해 몰랐다 범위 지정 지금까지, 그리고 @Wendy_Murphrey 더 나은 문서를 사용할 수 있지만 연관 배열과 같은 네임스페이스에 액세스할 수 있습니다.
nam = {"A", "B", "C", "D", "E", "H"};
For( i = 1, i <= N Items( nam ), i++,
As Scoped( Global, nam[i]) = i;
);
show(a,b,c,d,e,h);a = 1;
b = 2;
c = 3;
d = 4;
전자 = 5;
h = 6;
설명서에 명시되어 있지는 않지만 =의 왼쪽에 있을 수 있고 두 번째 매개변수는 문자열일 수 있습니다.
동의합니다. 대부분의 경우 { list of variable names } 코드에 덮어쓰지 않으려는 실제 변수가 포함된 경우 코드가 끔찍한 방식으로 중단될 수 있기 때문에 이 기술보다 실제 연관 배열을 선호합니다.
The list holding "nam" just clobbered the variable 'nam' which held the list..."nam"을 포함하는 목록은 목록을 보유하고 있는 변수 'nam'을 막 닫았습니다...