▲GN⁺ 2024-08-09 | parent | ★ favorite | on: C#의 Type Unions 공식 제안(github.com/dotnet)Hacker News 의견 F#에서 차별화된 유니온을 사용해왔고, C#에도 있을 것이라 생각했음 Java를 사용 중이며, ADT가 없는 언어로 돌아가는 것이 어렵다고 느끼고 있음 C#의 주요 기능 부족을 사과할 필요가 없어져 기쁨 "타입 유니온"이라는 용어가 생소함 ML 계열 언어의 태그 유니온과 유사해 보임 C# 개발자들이 기존 용어와 다른 이름을 만드는 경향이 있는지 궁금함 오랜 C# 개발자로서 이 제안의 사용 사례가 명확하지 않다고 느낌 빈 인터페이스와 레코드 클래스를 선언하여 구현할 수 있을 것 같음 놓치고 있는 부분이 있는지 궁금함 TypeScript에는 타입 유니온이 있음 F#이나 Haskell의 차별화된 유니온과 유사해 보임 차별화된 유니온에는 명명된 케이스 생성자가 있음 패턴 매칭이 가능한 유니온이 없으면 프로그래밍이 어려워짐 표현 문제의 의미를 완전히 이해하지 못했음 기존 다형성을 통한 확장 포인트 제공이 미래의 클라이언트에게 적합할 수 있음 팀이 소유한 코드에는 패턴 매칭이 가능한 유니온이 더 적합함 C# 유니온에서 필드 오프셋을 사용한 경험이 있음 포인터/참조 값과 값의 별칭이 정의되지 않은 동작을 유발할 수 있음 u64와 객체의 구조체 유니온은 별도의 필드를 필요로 하여 8바이트를 낭비할 수 있음 비공개 생성자와 nuget 패키지를 사용하여 스위치 타입이 _ 케이스를 필요로 하지 않도록 함 제안된 "유니온 클래스"의 디슈가 버전과 유사함 nuget 패키지가 불필요해지고 문법적 설탕이 추가되는 것이 좋음 유니온 구조체가 동시 수정 시 찢어짐을 어떻게 처리하는지 언급되지 않음 찢어짐은 메모리 안전 문제를 유발할 수 있음 동일한 오프셋에 정수 필드와 참조 필드를 가진 변형이 있을 수 있음
Hacker News 의견
F#에서 차별화된 유니온을 사용해왔고, C#에도 있을 것이라 생각했음
"타입 유니온"이라는 용어가 생소함
오랜 C# 개발자로서 이 제안의 사용 사례가 명확하지 않다고 느낌
TypeScript에는 타입 유니온이 있음
패턴 매칭이 가능한 유니온이 없으면 프로그래밍이 어려워짐
C# 유니온에서 필드 오프셋을 사용한 경험이 있음
비공개 생성자와 nuget 패키지를 사용하여 스위치 타입이
_케이스를 필요로 하지 않도록 함유니온 구조체가 동시 수정 시 찢어짐을 어떻게 처리하는지 언급되지 않음