Closed1
[Go] Generics
参考
-
https://future-architect.github.io/articles/20220209a/
- futureさんのアップデート概要解説
-
https://zenn.dev/nobishii/articles/type_param_intro
- Genericsについて詳しい記事
-
https://docs.google.com/presentation/d/1uyslEAHd6qLOn7Q9BqjMl3lB6UQ9vLyR2FYORXso0Iw/edit#slide=id.p
- tenntennさんの初心者向けわかりやすいスライド
使ってみた
簡単な使い方
// Pointer T型引数のポインタを返す
func Pointer[T any](v T) *T {
return &v
}
これはできない
// invalid operation: cannot use type assertion on type parameter value res (variable of type T constrained by number)
func NumberToString[T number](val T) string {
if v, ok := val.(int); ok {
return strconv.Itoa(v)
}
return ""
}
compareble
使うやつ
func Contains[T comparable](list []T, target T) bool {
for _, v := range list {
if v == target {
return true
}
}
return false
}
準標準のmaps
パッケージ使ってみた
このスクラップは2022/03/23にクローズされました