https://go.dev/blog/intro-generics
type Ordered interface {
Integer|Float|~string
}
The expression ~string means the set of all types whose underlying type is string.
~string 표현식은 실제 타입이 string인 모든 타입의 집합을 의미한다.
This includes the type string itself as well as all types declared with definitions such as type MyString string.
이것은 type MyString string와 같은 정의와 함께 선언된 모든 타입들 뿐만 아니라 string타입 자신을 포함합니다.
해석 : type키워드를 사용해서 string을 MyString(Named Type)으로 선언하였다. string과 MyString은 서로 다르다.
하지만 ~string을 사용하면 string자신뿐만 아니라 type MyString string로 선언된 타입까지 사용할 수 있다는 뜻이다.
제네릭으로 예제를 만들어보면,
Integer 인터페이스에 int앞에 tilde(~)를 안 넣어주니 오류가 나온다. MyInt는 Integer를 구현하지 않았다고 나오고 가로 안에 아마 Integer안에 int 앞에 ~를 잃어 버렸다고 한다. Integer 인터페이스 안에 int 앞에 tilde(~) 를 넣어주면 올바르게 작동할 것이다. 이렇게 Integer안에 정의한 자료형들을 underlying type도 허용하고 싶으면 앞에 tilde(~)를 넣어주면 된다.
'프로그래밍 > Go(golang) 프로그래밍' 카테고리의 다른 글
Go[golang] Youtube api를 사용하여 공개 재생목록 가져오기 2편(API 키 사용) (0) | 2023.07.12 |
---|---|
Go[golang] Youtube api를 사용하여 공개 재생목록 가져오기 1편(API 키 준비) (0) | 2023.07.11 |
Goland에서 *File.Close() 메소드를 찾지 못하는 문제 (0) | 2022.10.14 |
Go[golang]메서드 집합(method sets) (0) | 2022.09.14 |
Go[golang] 변수 추론(int, float64) (0) | 2022.07.04 |