ジェネリック インターフェイスを作成しますが、任意の型を許可しません。

```go
type AllowedPositions interface {
	int64 | float64 | string
}

type Position[T AllowedPositions] struct {
	X, Y, Z T
}

type Entity[T AllowedPositions] interface {
	GetPosition() Position[T]
	UpdatePosition(Position[T]) Position[T]
}

type Player[T AllowedPositions] struct {
	position Position[T]
}

func (p *Player[T]) GetPosition() Position[T] {
	return p.position
}

func (p *Player[T]) UpdatePosition(position Position[T]) Position[T] {
	p.position = position
	return p.position
}
```

Instead of using "any" type, this is more type safety way to handle generics in golang.

この記事が気に入ったらサポートをしてみませんか?