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

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

王林
リリース: 2024-04-07 15:18:01
オリジナル
1408 人が閲覧しました

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 コマンドの基本的な構文は次のとおりです:

1

go generate [-n] importpath...

ログイン後にコピー

その中には次のとおりです:

  • -n : 生成されたコードのみが実際には実行されずに出力されることを示します。
  • importpath: 生成されるパッケージのインポート パス

使用例

gogenerate このコマンドには多くの実用的な用途があります。ここではいくつかの例を示します。

データベース接続コードの生成

github.com/jackc/pgx のようなデータベース ライブラリを使用している場合は、 を使用できます。 gogenerate を使用してデータベース接続コードを生成します。例:

1

2

3

4

5

6

7

8

9

//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 サービス スタブ ファイルを生成します。例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

//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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート