<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] ## 語法 ``` go generate [-run regexp] [-n] [-v] [-x] [build flags] [file.go... | packages] -run 正則表達式匹配命令行,僅執行匹配的命令 -v 打印已被檢索處理的文件。 -n 打印出將被執行的命令,此時將不真實執行命令 -x 打印已執行的命令 // 在執行go generate時將會加入些信息到環境變量,可在命令程序中使用 $GOARCH 架構 (arm, amd64, etc.) $GOOS OS (linux, windows, etc.) $GOFILE 當前處理中的文件名 $GOLINE 當前命令在文件中的行號 $GOPACKAGE 當前處理文件的包名 $DOLLAR 固定的"$",不清楚用途 ``` 執行方式 ``` # 打印當前目錄下所有文件,將被執行的命令 go generate -n ./... # 對包下所有Go文件進行處理 go generate github.com/ysqi/repo # 打印包下所有文件,將被執行的命令 go generate -n runtime ``` 執行 `go generate` 時候,實際是在"*.go"文件中尋找 `//go:generate `的文件并執行 ### //go:generate 的文件格式 ``` package main import "fmt" //go:generate echo hello //go:generate go run main.go //go:generate echo file=$GOFILE pkg=$GOPACKAGE func main() { fmt.Println("main func") } ``` ## 實例 ### 對 Type 添加字符串 如果使用 iota 生成了常量,需要給他們添加一個 String(),接口方便打印,則可以使用 stringer painkiller.go ``` //go:generate stringer -type=Pill package painkiller type Pill int const ( Placebo Pill = iota Aspirin Ibuprofen Paracetamol Acetaminophen = Paracetamol ) ``` 執行 ``` > go generate ./... ``` 生成文件名為 pill_string.go <details> <summary>pill_string.go </summary> ``` package painkiller import "strconv" func _() { // An "invalid array index" compiler error signifies that the constant values have changed. // Re-run the stringer command to generate them again. var x [1]struct{} _ = x[Placebo-0] _ = x[Aspirin-1] _ = x[Ibuprofen-2] _ = x[Paracetamol-3] } const _Pill_name = "PlaceboAspirinIbuprofenParacetamol" var _Pill_index = [...]uint8{0, 7, 14, 23, 34} func (i Pill) String() string { if i < 0 || i >= Pill(len(_Pill_index)-1) { return "Pill(" + strconv.FormatInt(int64(i), 10) + ")" } return _Pill_name[_Pill_index[i]:_Pill_index[i+1]] } ``` </details> <br />
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看