연관 배열 (Map)

연관 배열 (Map)

LeekScript에는 "Array" 타입의 "일반" 배열과 "Map" 타입의 연관 배열이 있습니다.

이 조금 특별한 배열은 다음과 같은 문제를 해결해 줍니다. 내 부추의 특성, 예를 들어 힘, 지혜, 저항 등을 기억해 두고 싶다고 합시다. 그래서 배열을 하나 만들었습니다.

var monPoireau = []; push(monPoireau, getStrength()); push(monPoireau, getWisdom()); push(monPoireau, getResistance());

이제 문제는 힘이 1번째 칸, 지혜가 2번째 칸, 저항이 3번째 칸이라는 것을 기억해야 한다는 점입니다... 지금 당장은 괜찮지만, 2주 뒤에는 완전히 잊어버릴 겁니다!

해결책: 칸에 번호를 매기는 대신, 명확한 이름을 붙이는 편이 훨씬 똑똑합니다. 그것이 바로 가능하며, 연관 배열이라고 부릅니다!

var monPoireau = [:]; monPoireau["force"] = getStrength(); monPoireau["sagesse"] = getWisdom(); monPoireau["resistance"] = getResistance(); debug( monPoireau ); // ["force" : 150, "sagesse" : 20, "resistance" : 95] 같은 것이 출력됩니다 debug( monPoireau["force"] ); // 150이 출력됩니다

여기서 명확한 이름(키라고 부릅니다)은 "force", "sagesse", "resistance"입니다. 이 예제에서 키를 선언하는 방법과 사용하는 방법을 볼 수 있습니다. 키는 정수 또는 문자열일 수 있습니다.

편리하네요! 그런데 연관 배열은 어떻게 순회하나요?

다음 반복문은:

for (var k = 0; k maMap = [:];

엄격 모드에서는 이 타입 지정이 필수입니다. 단순히 var m = [:]로 선언한 Map에는 삽입이 컴파일되지 않지만(타입 오류), Map에는 허용됩니다.

그런 다음 map을 이렇게 순회할 수 있습니다.

for (string maCle : integer maValeur in maMap) { debug("Pour la clé " + maCle + " la valeur qui correspond est " + maValeur); }

이제 직접 사용해 볼 차례입니다. 한번 익숙해지면 없이는 지낼 수 없다는 것을 알게 될 겁니다!