Go で UUID を生成する
Universally Unique Identifier (UUID) は、高度なランダム性が不可欠なアプリケーションでのユーザー識別によく使用されます。UUID は、衝突の可能性を減らし、システム間で普遍的に区別されるため、何百万ものユーザーにサービスを提供するアプリに適しています。
Go は UUID を生成するためのパッケージを提供していません。ほとんどの Unix 関連のオペレーティング システムにはuuidgenプログラムが含まれているため、osパッケージを使用してそれらを生成できます。Google のuuidやgouuidパッケージなどの外部 Go パッケージを使用することもできます。
os パッケージで UUID を生成する
Go osパッケージは、Unix のような方法でホスト マシンのオペレーティング システムと対話するための機能を提供します。osパッケージのexecサブパッケージを使用してコマンドを実行し、Go プログラムの出力を取得できます。
これらの組み込みパッケージを Go ファイルにインポートして、osパッケージで UUID を生成します。
import (\n "fmt"\n "log"\n "os/exec"\n)\n
logパッケージを使用して発生する可能性のあるエラーをログに記録し、fmt string-formatting パッケージを使用して生成された UUID を出力します。
execパッケージのCommandメソッドを使用してコマンドを実行できます。Outputメソッドは、コマンドの出力を返します。
func osExec() {\n generateUUID, err: = exec.Command("uuidgen").Output()\n \n if err! = nil {\n log.Fatal(err)\n }\n \n fmt.Println(generateUUID)\n}\n
osExec関数は、uuidgen コマンドを使用して UUID を生成し、出力します。
Google の UUID パッケージで UUID を生成する
Google uuidパッケージは、 RFC 4122と DCE 1.1 認証およびセキュリティ サービスに基づいて UUID を生成および検査します。
プロジェクトのディレクトリでこの端末コマンドを実行して、uuidパッケージをプロジェクトの依存関係の 1 つとしてインストールします。
go get github.com/google/uuid\n
uuidパッケージをインポートしてUUID を生成し、 fmtパッケージをインポートして UUID をコンソールに出力します。
import (\n "fmt"\n "github.com/google/uuid"\n)\n
uuid パッケージのNewメソッドで UUID を生成できます。Newメソッドはランダムな UUID を返します。その String メソッドを使用して、その文字列表現を取得できます。
func googleUUID() {\n uuidValue: = uuid.New()\n fmt.Println(uuidValue.String())\n}\n
googleUUID関数はNewメソッドを使用して、ランダムな UUID の文字列形式を出力します。
GoUUID パッケージで UUID を生成する
gouuid パッケージは、RFC 4122 で指定されているように、NewV3、NewV4、および NewV5 UUID を生成し、UUID を解析するための不変の UUID 構造体と関数を提供します。
作業ディレクトリのターミナルでこのコマンドを実行して、gouuidパッケージをプロジェクトの依存関係にインストールします。
go get github.com/nu7hatch/gouuid\n
UUID を生成するには、エイリアスuuid (従来型) を使用してfmtおよびgouuidパッケージをインポートします。
import (\n "fmt"\n uuid "github.com/nu7hatch/gouuid"\n)\n
UUID またはエラーを返すNewV4メソッドを使用して、バージョン 4 の UUID を生成できます。
func generateV4(){\n v4UUID, err: = uuid.NewV4()\n \n if err! = nil {\n fmt.Println(err)\n }\n \n fmt.Println(v4UUID)\n}\n
generateV4メソッドは、 gouuidパッケージのNewV4メソッドから生成された UUID を出力します。
同様に、NewV5メソッドを使用してバージョン 5 の UUID を生成できます。NewV5メソッドは、UUID 名前空間 URL とバイト スライスを受け取り、生成されたバージョン 5 UUID を返します。
func generateV5(){\n v5UUID, err: = uuid.NewV5(uuid.NamespaceURL, []byte("go.dev"))\n \n if err! = nil {\n fmt.Println(err)\n }\n \n fmt.Println(v5UUID)\n}\n
generateV5関数は、生成エラーがない場合、 NewV5メソッドで UUID を生成した後に、生成されたバージョン 5 の UUID を出力します。
ほとんどのプログラミング言語で UUID を生成できます
UUID は多くのユースケースで役立つため、日常のアプリケーションでよく使われています。ほとんどのプログラミング言語は、標準ライブラリまたはエコシステム パッケージで UUID を生成する機能を提供します。
コメントを残す