본문으로 건너뛰기

다형과 참조 배열

문서 목록으로

상태: 구현 완료 (2026-08-25). 형식은 움직이지 않았습니다 — 기존 24개 시나리오의 골든이 한 파일도 안 바뀌었습니다.

「행마다 형태가 다른 데이터」를 적는 방법을 정합니다.


한눈에

형태가 갈리는 자리는 둘이고, 답이 서로 다릅니다.

무엇이 다른가
레코드 자체의 필드 구성이 행마다 다르다$type 으로 변종을 적습니다. 값이 그 행에 실립니다
이 키가 어느 카탈로그의 행인지 모른다참조가 아니라 검사입니다 — refs=A;B

첫째가 이 문서의 주제입니다. 둘째는 참조가 내는 이름이 정합니다.

abstract structextends 로 변종 집합을 선언하고, 시트의 $type 컬럼이 행마다 어느 변종인지 정합니다. 판별자는 int 컬럼 하나이고 변종 멤버는 옵셔널 컬럼이라, 이 형태는 와이어가 이미 실을 수 있던 것입니다. 그래서 형식이 안 바뀝니다.

되돌린 것 — 참조 쪽의 다형

참조에는 다형을 두지 않습니다. 한때 foreign A|B 와 테이블의 extends= 로 「이 키가 한 추상 타입의 어느 변종인가」를 적으려 했는데, 되돌렸습니다.

참조의 다중 대상은 선택지 목록이지 상속이 아닙니다. A와 B는 서로 무관한 카탈로그라 공통 분모가 없고, 공통 분모가 없으면 셀렉터가 돌려줄 타입이 없습니다.

「아직 거부」가 아니라 표기 자체가 없습니다. foreign 의 대상은 테이블 하나이고, 여러 테이블 중 하나여도 되는 값은 검사 표기 refs= 가 받습니다 (그 결정).

대상이 하나인 참조 배열(foreign X[])은 그대로 됩니다 — 한 셀에 구분자로 이어 적으면 원소마다 행 하나로 해석되고, 길이는 행마다 다릅니다. 없어진 것은 원소마다 대상이 갈리는 쪽뿐입니다.

지금 되는 것

무엇상태
abstract · extends · 변종의 @N · Tombstone (removed)됨. 문법 · 변종 집합 · 판별자 번호 · 지운 변종의 번호 예약
$type됨. 스칼라 그룹과 멀티 로우 배열 둘 다입니다
foreign X[] — 셀 안의 참조 배열됨. 원소마다 행 하나로 해석됩니다
판별자 정렬됨. 다형 그룹을 가진 테이블은 쿠킹에서 판별자로 안정 정렬합니다 — 비용에 크게 작용하는 것이 변종의 개수가 아니라 행의 순서였기 때문입니다
$key · $value예약 컬럼. 이름만 인식하고 「아직 지원하지 않음」으로 거부합니다

이 문서의 나머지

무엇어디
표기$type · abstract struct · 참조 배열. 시트에 무엇을 적는가
와이어와 생성 표면형식이 왜 안 바뀌는지, 생성 코드가 무엇을 내는지, 무엇을 검사하는지
고르는 기준과 단계셋 중 어느 것을 쓸지, 담지 않은 것, 그리고 단계별 게이트