golang

golang Struct Embedding

kimbs0301 2024. 7. 5. 17:23

golang은 클래스가 없으므로 타 언어의 상속기능을 제공하지 않습니다.
하지만 구조체 임베딩을 사용하면 상속과 비슷한 효과를 낼 수 있습니다.

 

import (
	"sync"
)

// 임베딩 미사용
type Client struct {
	ClientMutex sync.Mutex
	// ...
}
...
client := Client{}
client.ClientMutex.Lock()
// ...
client.ClientMutex.Unlock()

// 임베딩 사용
type Client struct {
	sync.Mutex
	// ...
}
...
client := Client{};
client.Lock();
// ...
client.Unlock()

 

Client 구조체에서 Mutex의 메서드에 직접 접근이 가능합니다.

'golang' 카테고리의 다른 글

golang init 함수 호출 시점  (0) 2024.07.05
golang 메모리 패딩 고려한 구조체 최적화  (0) 2024.07.05
golang json gojay 라이브러리  (0) 2024.07.05
golang file scanner  (0) 2024.07.05
golang 정규식 문자열 치환  (0) 2024.07.05