Go에서 사용자 정의 타입 사용 방법
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

Go에서 사용자 정의 타입 사용 방법

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

개발 툴

대상자

Go 언어를 사용하는 개발자, 특히 사용자 정의 타입과 메서드 정의에 관심 있는 초보자 및 중급자

핵심 요약

  • 사용자 정의 타입struct 또는 기본 타입(string, int, float64 등)을 기반으로 생성 가능
  • 메서드 정의를 통해 타입별 기능 확장 가능 (MyCustomInt.Positive() 예시)
  • 인터페이스 활용으로 다양한 타입(예: DocumentRG, DocumentCPF)에 대한 일관된 처리 가능
  • Enum 타입을 통해 문서 유형(DocumentType)을 명확하게 구분하고 타입별 로직 실행 가능

섹션별 세부 요약

1. 사용자 정의 타입 생성

  • struct 외에도 string, int, slice 등 기본 타입을 기반으로 사용자 정의 타입 생성 가능
  • 예: type MyCustomString string, type MyCustomInt int
  • 생성된 타입은 기본 타입과 동일한 연산(예: +, *) 지원

2. 메서드 정의와 사용

  • 사용자 정의 타입에 메서드 추가 가능: func (my MyCustomInt) Positive() bool
  • 메서드는 타입별로 고유한 로직 구현 가능 (예: Document.Validate())
  • 메서드 호출 예: person.Document.Validate()

3. 인터페이스를 통한 타입 확장

  • interface 정의로 다양한 타입(DocumentRG, DocumentCPF)의 공통 인터페이스(Validate()) 구현
  • Person 구조체의 Document 필드는 Document 인터페이스 타입 사용 가능
  • 타입별로 Validate() 메서드 구현 시 자동으로 인터페이스를 충족

4. Enum 타입으로 문서 유형 관리

  • DocumentType이라는 uint 기반 Enum 타입 정의
  • iota로 상수 정의: DocumentTypeRG, DocumentTypeCPF, DocumentTypeCNH, DocumentTypePassaporte
  • String() 메서드를 통해 Enum 값의 문자열 표현 제공 (예: DocumentType.CPF"CPF")

결론

  • 사용자 정의 타입과 메서드 정의를 통해 코드의 타입 안전성과 재사용성을 높일 수 있음
  • 인터페이스와 Enum을 활용하면 복잡한 타입 관리 및 확장이 용이함
  • 예: DocumentType Enum 사용으로 문서 유형을 명확히 구분하고, 각 유형별로 Validate() 메서드를 구현해 로직 분리 가능