0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Goチュートリアル コマンド用語解説①:go mod initからlog.SetFlags(0)まで

Posted at

はじめに

Go言語を学ぶ中で登場する重要なコマンドや設定について、具体的な使い方とその意味を詳しく解説します。この記事では、以下の内容を扱います:

  1. go mod init example/hello
  2. import "rsc.io/quote"
  3. go mod tidy
  4. go mod edit -replace example.com/greetings=../greetings
  5. log.SetPrefix("greetings: ")
  6. log.SetFlags(0)

1. go mod init example/hello

このコマンドは、新しいGoモジュールを初期化するために使用します。

ポイント

  • go.modファイルを生成します。このファイルはモジュールの依存関係を管理するために使用されます。
  • example/helloはモジュールパスを表します。本番環境ではリポジトリのURL(例: github.com/username/project)を指定します。

モジュールを初期化すると、以下のような内容がgo.modに記録されます:

module example/hello

go 1.21

2. import "rsc.io/quote"

外部モジュールをコードに取り込むための記述です。

ポイント

  • rsc.io/quoteはGo言語で利用可能な公開モジュールの一例です。
  • このモジュールには、名言を返す便利な関数が含まれています(例: quote.Go())。

使い方

コード内でquote.Go()関数を呼び出すと、"Don't communicate by sharing memory, share memory by communicating."のようなメッセージを返します。

3. go mod tidy

このコマンドは、モジュールの依存関係を整理し、go.modgo.sumを更新します。

ポイント

  • コード内で使用しているすべての依存関係を確認し、それらをダウンロードします。
  • 不要な依存関係を削除します。

import "rsc.io/quote"を追加した後にgo mod tidyを実行すると、以下が自動的に行われます:

  • go.modrequire rsc.io/quote v1.5.2が追加されます。
  • go.sumに依存関係の検証情報が記録されます。

4. go mod edit -replace example.com/greetings=../greetings

モジュールの参照先をローカルパスに置き換えるためのコマンドです。

ポイント

  • 開発中のモジュールをローカルディレクトリから読み込むために使用します。
  • example.com/greetings../greetingsに置き換える指定をしています。

用途

外部リポジトリに公開する前に、ローカルで開発中のモジュールをテストする際に便利です。

5. log.SetPrefix("greetings: ")

ログメッセージの先頭にプレフィックスを追加します。

ポイント

  • "greetings: "という文字列がすべてのログメッセージの前に付与されます。
  • ログの出力元を簡単に識別できるようになります。

log.Println("This is a log message.")が以下のように出力されます:

greetings: This is a log message.

6. log.SetFlags(0)

ログ出力のフォーマットを変更します。

ポイント

  • 0を指定することで、タイムスタンプやソースコード情報を含まないシンプルなログ出力にします。

フラグの種類

フラグ 説明
log.Ldate 日付を追加 (YYYY/MM/DD)
log.Ltime 時刻を追加 (HH:MM:SS)
log.Lmicroseconds マイクロ秒を追加 (HH:MM:SS.uuuuuu)
log.Llongfile フルパスのファイル名と行番号を追加
log.Lshortfile ファイル名のみと行番号を追加

まとめ

この記事では、Goモジュールを初期化し、外部モジュールをインポートし、依存関係を管理する基本的な方法を解説しました。また、ログ出力をカスタマイズするlog.SetPrefixlog.SetFlagsの活用方法も紹介しました。

Goの開発でこれらを活用することで、より効率的なモジュール管理とデバッグが可能になります!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?