Go の空の構造体: その目的と用途
Go は、空の構造体 (struct{}) を備えた独自の機能を提供します。これらのサイズ 0 の構造体には、さまざまなシナリオで価値のある明確な特性があります。
空の構造体の利点
使用例
import "sync" var wg sync.WaitGroup func notify() { wg.Done() } func main() { wg.Add(1) go notify() wg.Wait() }
import ( "fmt" "testing" ) type SomeInterface interface { DoSomething() } type Empty struct{} func (e Empty) DoSomething() { fmt.Println("Doing something") } func Test(t *testing.T) { var i SomeInterface = Empty{} i.DoSomething() }
type Set[T comparable] map[T]struct{} func NewSet[T comparable](s []T) Set[T] { set := make(Set[T], len(s)) for _, v := range s { set[v] = struct{}{} } return set }
以上がGo における空の構造体の利点と用途は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。