Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
변형 클래스
소개
Variant는 Godot에서 가장 중요한 데이터 유형입니다. Variant는 64비트 플랫폼에서 24바이트(32비트 플랫폼에서는 20바이트)만 차지하며 내부에 거의 모든 엔진 데이터 유형을 저장할 수 있습니다. 변형은 장기간 정보를 보유하는 데 거의 사용되지 않으며 대신 주로 통신, 편집, 직렬화 및 일반적으로 데이터 이동에 사용됩니다.
변형은 다음을 수행할 수 있습니다.
거의 모든 데이터 유형을 저장합니다.
많은 변형 간의 작업을 수행합니다(GDScript는 Variant를 원자/네이티브 데이터 유형으로 사용합니다).
해시되어 다른 변형과 빠르게 비교할 수 있습니다.
데이터 유형 간에 안전하게 변환하는 데 사용됩니다.
호출 방법과 인수를 추상화하는 데 사용됩니다(Godot는 변형을 통해 모든 기능을 내보냅니다).
호출을 연기하거나 스레드 간에 데이터를 이동하는 데 사용됩니다.
바이너리로 직렬화되어 디스크에 저장되거나 네트워크를 통해 전송됩니다.
텍스트로 직렬화되어 값 인쇄 및 편집 가능한 설정에 사용됩니다.
내보낸 속성으로 작업하므로 편집자가 전체적으로 편집할 수 있습니다.
사전, 배열, 파서 등에 사용됩니다.
기본적으로 Variant 클래스 덕분에 Godot 자체를 작성하는 것은 훨씬 더 쉬운 작업이었습니다. C++에서는 일반적이지 않은 매우 동적인 구성을 약간의 노력으로 허용하기 때문입니다. 오늘 Variant의 친구가 되어보세요.
참고
Nil 및 Object를 제외한 Variant 내의 모든 유형은 ``null``가 될 수 없으며 항상 유효한 값을 저장해야 합니다. 따라서 Variant 내의 이러한 유형을 nullable 유형이라고 합니다.
One of the Variant types is Nil which can only store the value null. 따라서 Nil 및 Object를 제외한 모든 Variant 유형이 Null을 허용하지 않더라도 Variant에 null 값이 포함될 수 있습니다.
참조
변종 유형의 목록
다음 유형은 변종으로 사용 가능합니다:
유형 |
메모 |
|---|---|
없음(``null``만 저장할 수 있음) |
명명된 타입 |
AABB의 2D 대응물 |
|
Quat |
|
Sprite |
Rect2의 3D 대응물 |
Transform |
|
명명된 타입 |
|
컨테이너: 배열 및 사전
Array 및 :ref:`class_dictionary`는 모두 변형을 사용하여 구현됩니다. 사전은 키로 사용되는 모든 데이터 유형을 다른 데이터 유형과 일치시킬 수 있습니다. 배열은 변형 배열을 보유합니다. 물론 Variant는 Dictionary나 Array를 내부에 담을 수도 있어 훨씬 더 유연합니다.
컨테이너를 수정하면 해당 컨테이너에 대한 모든 참조가 수정됩니다. :ref:`Mutex <doc_core_concurrency_types>`을 생성하여 :ref:`다중 스레드 액세스 <doc_using_multiple_threads>`를 원하는 경우 잠그도록 해야 합니다.