GOEXPERIMENT + Build Constraints
2026-02-23 19:15:24 Go最終更新日から %s 以上が経過しています。
内容が古くなっている可能性があるのでご注意ください。
内容が古くなっている可能性があるのでご注意ください。
例えば GOEXPERIMENT=rangefunc の場合にビルドしたい/したくない場合の書き方
書き方
ファイルの冒頭にコメントを記述するやり方でいけます。
すべて小文字の goexperiment.xxx を使います。
否定形は !goexperiment.xxx です。
GOEXPERIMENT
//go:build goexperiment.rangefunc
not GOEXPERIMENT
//go:build !goexperiment.rangefunc
例
main.go
package main
func main() {
RangeOverFunc()
}
rof1.go
//go:build goexperiment.rangefunc
package main
func RangeOverFunc() {
f := func(yield func(i int) bool) {
n := 0
for {
yield(n)
n++
}
}
for i := range f {
println("ctrl+c してね")
println(i)
}
}
rof2.go
//go:build !goexperiment.rangefunc
package main
func RangeOverFunc() {
println("rangefunc disabled")
}
build
> go build
> rof.exe
rangefunc disabled
> set GOEXPERIMENT=rangefunc
> go build
> rof.exe
:
- 📄 Hugo テーマ 9. Pagefind でサイト内検索機能を付ける2026-06-15 00:11:30静的なインデックスを使った検索 UI を提供する Pagefind を組み込みます。
- 📄 Hugo テーマ 8. Shortcodes と Render hooks2026-06-15 00:11:30Markdown で記述したコンテンツ (テーマの利用側) に対して Hugo が用意した HTML 変換の仕組みを解説します。
- 📄 Hugo テーマ 7. layouts/baseof.html をいじる2026-06-15 00:11:30サイト全体に共通する、ページのレイアウト定義を編集します。
- 📄 Hugo テーマ 6. layouts/home.html をいじる2026-06-15 00:11:30トップページのレイアウト定義を編集します。
- 📄 Hugo テーマ 5. layouts/section.html をいじる2026-06-15 00:11:30content 内のディレクトリーに対応するレイアウト定義を編集します。
- 📄 Hugo テーマ 4. layouts/page.html をいじる2026-06-15 00:11:30コンテンツに対応するページのレイアウトを編集します。
- 📄 Hugo テーマ 3. 作られたファイル2026-06-15 00:11:30前回作ったテーマを構成するファイルを解説します。
- 📄 Hugo テーマ 2. まずは作ってみる2026-06-15 00:11:30テーマを作りプロジェクトに適用するところまでを解説します。
- 📄 Hugo テーマ 1. はじめに2026-06-15 00:11:30連載「Hugo テーマ」を行う背景とその方針を説明します。
- 📄 vvin2026-05-30 16:58:07Windows のウィンドウサイズを操作する CLI アプリ