16장: 배열, array
TCL 마스터하기: 배열(Array) 🗃️
1. 배열 개요
TCL의 배열은 연관 배열(associative array) 또는 해시 테이블과 유사한 키-값 쌍의 집합입니다.
2. 배열 생성 및 요소 접근
2.1 배열 요소 설정
set fruits(apple) red
set fruits(banana) yellow
set fruits(grape) purple
2.2 배열 요소 접근
puts $fruits(apple) # 출력: red
3. array 명령어
array 명령어는 배열을 조작하고 정보를 얻는 데 사용됩니다.
3.1 기본 구문
array 서브커맨드 배열이름 인자
3.2 주요 서브커맨드
array exists: 배열 존재 여부 확인
if {[array exists fruits]} { puts "fruits 배열이 존재합니다." }
array size: 배열의 요소 수 반환
puts [array size fruits] # 배열의 요소 수 출력
array names: 배열의 모든 키 반환
foreach key [array names fruits] { puts "$key: $fruits($key)" }
array get: 배열의 모든 키-값 쌍을 리스트로 반환
set fruit_list [array get fruits] puts $fruit_list # {apple red banana yellow grape purple} 출력
array set: 리스트로부터 배열 생성 또는 업데이트
array set colors { red #FF0000 green #00FF00 blue #0000FF }
array unset: 배열 요소 삭제
array unset fruits grape # grape 키 삭제 array unset fruits # 모든 요소 삭제
4. 배열 순회
4.1 foreach를 사용한 순회
foreach {key value} [array get fruits] {
puts "$key is $value"
}
4.2 parray 명령어 사용
parray fruits # 배열 내용을 보기 좋게 출력
5. 다차원 배열
TCL은 컴퓨터 메모리 레벨에서 다차원 배열을 지원하지 않지만, 키 이름을 사용하여 다차원 배열처럼 유사하게 구현할 수 있습니다.
set matrix(1,1) 10
set matrix(1,2) 20
set matrix(2,1) 30
set matrix(2,2) 40
puts $matrix(1,2) # 출력: 20
6. 배열 vs 리스트
배열: 키를 통한 빠른 접근, 대규모 데이터에 효율적
리스트: 순차적 접근, 사용법이 간단해서 최적화가 필요없는 데이터의 경우, 자주 쓰임.
7. 고급 기능
7.1 array statistics
배열의 내부 구조에 대한 통계 정보를 제공합니다.
puts [array statistics fruits]
7.2 array unset with pattern
패턴을 사용하여 여러 요소를 한 번에 삭제할 수 있습니다.
array unset fruits *a* # 'a'를 포함하는 모든 키 삭제
8. 성능 고려사항 🚀
큰 데이터셋에서 배열은 리스트보다 효율적입니다.
array set
은 대량의 데이터를 한 번에 설정할 때 유용합니다.
9. 팁과 요령 💡
배열 이름 충돌을 피하기 위해 네임스페이스를 사용하세요.
array
명령어의 다양한 서브커맨드를 활용하여 배열을 효과적으로 관리하세요.복잡한 데이터 구조가 필요한 경우, 다차원배열 또는 배열의 리스트를 고려해보세요.
Last updated