ホームページ  >  記事  >  バックエンド開発  >  秘密兵器「generate in the go」コマンド

秘密兵器「generate in the go」コマンド

王林
王林オリジナル
2024-04-07 15:18:011145ブラウズ

gogenerate コマンドは、コード、ファイル、アーティファクトを自動的に生成することで、繰り返しのタスクを簡素化します。その使用法は次のとおりです。 1. go generated [-n] importpath... 2. -n: 実際の実行を表示せずに、生成されたコードを出力します。 3. importpath: 生成されるパッケージのインポート パス 4. 使用例: データベース接続コード (pgxgen) を生成し、gRPC サービス スタブ ファイル (protoc --go-grpc) を生成します。

秘密兵器「generate in the go」コマンド

go コマンドのgenerate の秘密兵器

繰り返しのタスクを手動で実行するのにうんざりしている場合は、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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。