ジェネリクス - Go

最終更新日: 2026-07-25

TOP(About this memo)) > 一覧(Go) > ジェネリクス

ドキュメント

参考

ジェネリクス(generics)()

nilを指定すると ジェネリクスを推論できないケースの対応。

...
  return handle(c, &request.DeclineFriendRequest{}, (nil, http.StatusOK, func(req *request.DeclineFriendRequest) (any, error) {...})
...

func handle[REQ, DATA any, RES ResponseHasSet[DATA]](c echo.Context, request *REQ, res RES, successStatusCode int, logic func(*REQ) (DATA, error)) error {
	...
}
...
  return handle(c, &request.DeclineFriendRequest{}, (*response.EmptyData)(nil), http.StatusOK, func(req *request.DeclineFriendRequest) (any, error) {...})
return handle[request.DeclineFriendRequest, any, *response.EmptyData](c, &request.DeclineFriendRequest{}, nil, http.StatusOK, func(req *request.DeclineFriendRequest) (any, error) {...})

comparable

func main() {
	var x int
	var y any
	f(x) // ok
	// f(y) // compile error
	_ = y
}
func f[T comparable](x T) {}

any型 は comparable ではない。