Go言語ではスタンドアロンアプリケーションを簡単に作ることができます。ここでは、コマンドラインツールとしてのスタンドアロンアプリの具体例を示します。
アプリ概要 このアプリは、指定されたディレクトリ内のファイルを検索し、特定の拡張子を持つファイルの一覧を表示します。
ステップ1: ディレクトリの作成 まず、新しいディレクトリを作成します。
mkdir filesearch
cd filesearch
ステップ2: main.goファイルの作成 main.go
ファイルを作成し、以下のコードを記述します。
package main
import (
"flag"
"fmt"
"io/ioutil"
"path/filepath"
)
func main() {
// コマンドライン引数のパースフラグを定義
dir := flag.String("dir", ".", "検索対象のディレクトリ")
ext := flag.String("ext", ".go", "検索対象の拡張子")
flag.Parse()
// ディレクトリ内のファイルを走査
files, err := ioutil.ReadDir(*dir)
if err != nil {
fmt.Println("Error:", err)
return
}
// 指定された拡張子を持つファイルを出力
fmt.Printf("検索対象: %s (拡張子: %s)\n", *dir, *ext)
for _, file := range files {
if filepath.Ext(file.Name()) == *ext {
fmt.Println(file.Name())
}
}
}
コード説明
flag
パッケージを使って、コマンドライン引数をパースしています。-dir
フラグで検索対象のディレクトリ、-ext
フラグで検索対象の拡張子を指定できます。ioutil.ReadDir
関数を使って、指定されたディレクトリ内のファイルとディレクトリの一覧を取得しています。filepath.Ext
関数を使って、ファイルの拡張子を取得し、指定された拡張子と一致するファイル名を出力しています。
ステップ3: アプリケーションのビルド Go言語のアプリケーションは、単一の実行可能バイナリとしてビルドすることができます。ターミナル(コマンドプロンプト)で以下のコマンドを実行します。
go build
これにより、filesearch
(Windowsの場合はfilesearch.exe
)という実行可能バイナリファイルが生成されます。
ステップ4: アプリケーションの実行 ビルドしたバイナリを実行して、アプリケーションをテストします。
./filesearch -dir=/path/to/dir -ext=.txt
出力例:
検索対象: /path/to/dir (拡張子: .txt)
file1.txt
file2.txt
このようにして、Go言語を使ってスタンドアロンのコマンドラインツールを作成することができます。Go言語のクロスコンパイル機能を使えば、単一のバイナリをさまざまなプラットフォームで実行可能にすることもできます。
また、GUIアプリケーションやサーバーアプリケーションなど、さまざまな種類のスタンドアロンアプリを開発することも可能です。Go言語の標準ライブラリには、ネットワーク通信、ファイルI/O、データ処理などの機能が含まれているため、さまざまな用途のアプリケーションを開発できます。
コメント