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의 메서드에 직접 접근이 가능합니다.