Golang プリプロセッサのような C スタイルのコンパイルスイッチ 質問する

Golang プリプロセッサのような C スタイルのコンパイルスイッチ 質問する

GO言語にはプリプロセッサがありますか?インターネットで調べたところ、*.pgoを*.goに変換する方法はいくつかありました。Goでそれができるかどうか疑問です。

#ifdef COMPILE_OPTION
  {compile this code ... }
#elif 
  {compile another code ...}

または、#undef in c

ベストアンサー1

これを実現する最も近い方法は、ビルド制約。 例:

メイン.go

package main

func main() {
    println("main()")
    conditionalFunction()
}

// +build COMPILE_OPTION

package main

func conditionalFunction() {
    println("conditionalFunction")
}

b.go

// +build !COMPILE_OPTION

package main

func conditionalFunction() {
}

出力:

% go build -o example ; ./example
main()

% go build -o example -tags COMPILE_OPTION ; ./example
main()
conditionalFunction

おすすめ記事