以下の内容はhttps://devlights.hatenablog.com/entry/2022/10/14/073000より取得しました。


Goメモ-257 (複数のmain関数を共存させる)(go:build ignore)

概要

知らなかったので、忘れないうちにメモメモ。。。

以下のmattnさんのツイートで知りました。感謝。

このやり方使ったら、ちょこっとしたサンプルなどを一つのディレクトリに何個もおくことができるので、これから利用します。

試してみる

$ tree .
.
├── main1.go
├── main2.go
└── Taskfile.yml

0 directories, 3 files

main1.go

//go:build ignore
//
// - https://twitter.com/mattn_jp/status/950629429805395968
// - https://twitter.com/mattn_jp/status/1575760585563639808
package main

import "fmt"

func main() {
    fmt.Println("main1")
}

main2.go

//go:build ignore
//
// - https://twitter.com/mattn_jp/status/950629429805395968
// - https://twitter.com/mattn_jp/status/1575760585563639808

package main

import "fmt"

func main() {
    fmt.Println("main2")
}

Taskfile.yml

version: '3'

tasks:
  default:
    cmds:
      - cmd: go build
        ignore_error: true
      - cmd: go run main1.go
      - cmd: go run main2.go

実行すると以下のようになります。

$ task
task: [default] go build
package github.com/devlights/try-golang/examples/singleapp/multi_main: build constraints exclude all Go files in /workspace/try-golang/examples/singleapp/multi_main
task: [default] go run main1.go
main1
task: [default] go run main2.go
main2

参考情報

try-golang/examples/singleapp/multi_main at master · devlights/try-golang · GitHub


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。




以上の内容はhttps://devlights.hatenablog.com/entry/2022/10/14/073000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14