열거형(enum)은 enumeration의 약어로, 열거자(enumerators)라고 하는 일련의 요소를 명명 또는 나열하는 것을 의미하며, 요일이나 나침반 방향 등에 사용되는 Verse 타입입니다.
이미지를 클릭하면 확대됩니다.
닫힌 열거형 및 열린 열거형
Verse에서는 섬을 퍼블리싱한 후에 열거형의 정의를 변경하는 방식을 지정하기 위해 열거형에 <open> 및 <closed> 어트리뷰트 지정자를 사용합니다.
열거형은 기본적으로 닫혀 있습니다. 닫힌 열거형으로는 열거형 값을 추가하거나 순서를 변경할 수 없고, 섬이 퍼블리싱된 후에는 닫힌 열거형을 열린 열거형으로 변경할 수 없습니다.
닫힌 열거형은 요일과 같이 동일하게 유지될 것으로 예상되는 값에 사용하는 것이 가장 좋습니다.
열린 열거형으로는 다음과 같은 작업이 가능합니다.
새 열거형 값을 추가합니다.
열거형 값의 순서를 변경합니다.
열린 열거형을 닫힌 열거형으로 변경합니다.
열린 열거형은 열거형 값의 수가 향후 증가할 것으로 예상되는 경우에 사용하는 것이 가장 좋습니다. 예를 들어 무기 유형의 열거형이 여기에 해당합니다.
열린 열거형은 case 명령문에서 디폴트 케이스 없이는 사용할 수 없습니다. 닫힌 열거형은 모든 열거형 값에 케이스가 있는 경우에만 디폴트 케이스 없이 case 명령문에서 사용할 수 있습니다.
열거형 생성하기
| 액션 | 코드 예시 |
|---|---|
닫힌 열거형 생성하기: 열거형은 기본적으로 닫혀 있습니다.
| Verse |
열린 열거형 생성하기: 명시적으로 열린 열거형을 정의하려면 | Verse |
열거자에 액세스하기: 열거형에 | Verse |
퍼시스턴스 타입
열거형은 <persistable> 지정자로 정의된 경우 퍼시스턴스입니다. 모듈 스코프 weak_map 변수에서 이 타입을 사용할 수 있으며 전체 게임 세션에서 값이 유지됩니다.
Verse의 퍼시스턴스에 대한 자세한 내용은 Verse에서 퍼시스턴스 데이터 사용하기를 확인하세요.
퍼시스턴스가 아닌 열거형은 퍼시스턴스 데이터와 함께 사용할 수 없습니다.
다음은 모든 요일에 대한 닫힌 퍼시스턴스 열거형의 예시로서, 플레이어가 나중에 저장, 업데이트, 액세스할 수 있습니다.
day := enum<persistable>:
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday지정하지 않으면 모든 열거형은 기본적으로 닫힌 열거형이 됩니다.
퍼블리싱된 열거형
섬을 퍼블리싱하면 <persistable> 지정자가 있는 닫힌 열거형과 열린 열거형의 특정 속성이 고정됩니다.
닫힌 열거형의 경우:
<open>열거형이 되도록 업데이트할 수 없습니다.열거형 값을 추가하거나, 이름 또는 순서를 변경하거나, 제거할 수 없습니다.
지정되지 않은 경우
<closed>지정자를 추가할 수 있습니다.
열린 열거형의 경우:
<closed>지정자를 사용한 닫힌 열거형이 되도록 업데이트할 수 있습니다.열거형 값을 추가하고 순서를 변경할 수 있습니다.
열거형 값의 이름을 변경하거나 제거할 수 없습니다.
디폴트 케이스 없이는 case 명령문에서 사용할 수 없습니다.