2013-06-10 3 views
2

내가 가진 몇 가지 목록 :TCL 변수 이름 대체

AllMaxMins_LC1 AllMaxMins_LC2 AllMaxMins_LC3 그래서 지금은이 같은 각각의 목록을 가고 싶어

에 : 내가 아는

for {set i 1} {$i < 10} {incr i} { 
    foreach SubList $AllMaxMins_LC$i { 
    # do something 
    } 
} 

그 방법 I 그것을 시도하십시오, 그러나 나는 어떻게 그런 대용 암호를 정확하게 달성 할 수 있습니까?

+1

동적 변수 이름 방식이 종류 정말로 배열 요구'AllMaxMins_LC (1) AllMaxMins_LC (3) AllMaxMins_LC (3), ... '다음'의 foreach 키 [배열 이름 AllMaxMins_LC {foreach는 subList $ AllMaxMins_LC ($ key) ...' –

답변

2

예 : 두 번째 인수없이 set 명령을 사용하여 AllMaxMins_LC$i 변수의 내용에 액세스하십시오. 예 :

for {set i 1} {$i < 10} {incr i} { 
    set SubList [set AllMaxMins_LC$i] 
    foreach element $SubList { 
    # do something 
    } 
} 
1

문제를 해결하는 답변을 찾았 기 때문에 기쁩니다.

그러나 예를 좀 더 복잡하게 만들 수 있다면 더 많은 도움을 드릴 수 있습니다. 서서히 말하면, 각 목록의 내용을 똑같이 다루기 때문에 처음에는 여러 목록을 가지기로 결정할 이유가 없습니다.

왜 주위에 for {set i 0} {$i < 10} {incr i} 루프가 있는지 분명하지 않습니다.

실제로 각 요소가 10 개 인 세 개의 목록이있는 경우 각 목록의 첫 번째 요소를 처리 한 다음 두 번째 요소, 세 번째 요소 등을 처리 할 수 ​​있습니다.이 경우에는

foreach maxMin_1 $AllMaxMIns_LC1 maxMin_2 $allMaxMins_LC2 maxMin_3 $allMaxMins_LC3 { 
    # do somthing 
}