gogenerate コマンドは、コード、ファイル、アーティファクトを自動的に生成することで、繰り返しのタスクを簡素化します。その使用法は次のとおりです。 1. go generated [-n] importpath... 2. -n: 実際の実行を表示せずに、生成されたコードを出力します。 3. importpath: 生成されるパッケージのインポート パス 4. 使用例: データベース接続コード (pgxgen) を生成し、gRPC サービス スタブ ファイル (protoc --go-grpc) を生成します。
繰り返しのタスクを手動で実行するのにうんざりしている場合は、gogenerate
コマンドを使用してください。あなたの命の恩人です。この強力なコマンドは、コード、ファイル、その他の成果物の生成に役立ち、時間と労力を大幅に節約できます。
go generated
コマンドの基本的な構文は次のとおりです:
go generate [-n] importpath...
その中には次のとおりです:
-n
: 生成されたコードのみが実際には実行されずに出力されることを示します。 importpath
: 生成されるパッケージのインポート パス gogenerate
このコマンドには多くの実用的な用途があります。ここではいくつかの例を示します。
データベース接続コードの生成
github.com/jackc/pgx
のようなデータベース ライブラリを使用している場合は、 を使用できます。 gogenerate
を使用してデータベース接続コードを生成します。例:
//go:generate pgxgen -database pgxgen -skip-columns "ID" -skip-package pgxgen package pgxgen import "database/sql" import _ "github.com/jackc/pgx/stdlib" // pgx driver needed for generate import _ "github.com/jackc/pgx/gen/dbinit" var DB *sql.DB
gogenerate
を実行すると、データベース スキーマに基づいて db.go
ファイルが生成されます。このファイルには、接続された *sql.DB# が含まれています。データベースに保存します。##。
gRPC サービス スタブ ファイルの生成
github.com/golang/protobuf ライブラリを使用している場合は、
go を使用できます。 generate gRPC サービス スタブ ファイルを生成します。例:
//go:generate protoc --go-grpc ./*.proto package main import ( "context" "log" pb "github.com/example/mypackage/api/v1" "google.golang.org/grpc" ) func main() { // gRPC server address addr := "localhost:5000" // Connect to gRPC server conn, err := grpc.Dial(addr, grpc.WithInsecure()) if err != nil { log.Fatalf("Did not connect: %v", err) } defer conn.Close() client := pb.NewGreeterClient(conn) // Call gRPC service resp, err := client.SayHello(context.Background(), &pb.HelloRequest{Name: "John"}) if err != nil { log.Fatalf("Could not greet: %v", err) } log.Printf("Greeting: %s", resp.Message) }
gogenerate を実行すると、gRPC サービス スタブのコードを含む
pb.go ファイルが生成されます。
gogenerate コマンドは、コード生成タスクを自動化できる強力なツールです。
go generated の機能を最大限に活用することで、時間と労力を大幅に節約できます。
以上が秘密兵器「generate in the go」コマンドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。