エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
【Go】Generics を使って、null 許容 scalar type 的なものを作る - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
【Go】Generics を使って、null 許容 scalar type 的なものを作る - Qiita
string や int など、プリミティブな型は、それがゼロ値なのか、意図してその値になっているのかわから... string や int など、プリミティブな型は、それがゼロ値なのか、意図してその値になっているのかわからない時がある。 それを判別するために database/sql pkg などでは、NullString などの独自型を用意して、ゼロバリューなのかどうかを判定できるようにしている。 それをジェネリクスを使って、汎用的に書いてみたものが以下。 package main import ( "fmt" ) type NullValue[T any] struct { value T valid bool } func NewNullValue[T any](v T) NullValue[T] { return NullValue[T]{ value: v, valid: true, } } func (nv NullValue[T]) Value() (T, bool) { var noo