<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之旅 廣告
                golang模板語法簡明教程 【模板標簽】 模板標簽用"{{"和"}}"括起來 【注釋】 {{/* a comment */}} 使用“{{/*”和“*/}}”來包含注釋內容 【變量】 {{.}} 表示所有 (此標簽輸出當前對象的值) {{.Admpub}} 表示輸出Struct對象中字段或方法名稱為“Admpub”的值。 當“Admpub”是匿名字段時,可以訪問其內部字段或方法,比如“Com”:{{.Admpub.Com}} , 如果“Com”是一個方法并返回一個Struct對象,同樣也可以訪問其字段或方法:{{.Admpub.Com.Field1}} {{.Method1 "參數值1" "參數值2"}} 調用方法“Method1”,將后面的參數值依次傳遞給此方法,并輸出其返回值。 {{$admpub}} 此標簽用于輸出在模板中定義的名稱為“admpub”的變量。當$admpub本身是一個Struct對象時,可訪問其字段:{{$admpub.Field1}} 在模板中定義變量:變量名稱用字母和數字組成,并帶上“$”前綴,采用符號“:=”進行賦值。 比如:{{$x := "OK"}} 或 {{$x := pipeline}} 【管道函數】 用法1: {{FuncName1}} 此標簽將調用名稱為“FuncName1”的模板函數(等同于執行“FuncName1()”,不傳遞任何參數)并輸出其返回值。 用法2: {{FuncName1 "參數值1" "參數值2"}} 此標簽將調用“FuncName1("參數值1", "參數值2")”,并輸出其返回值 用法3: {{.Admpub|FuncName1}} 此標簽將調用名稱為“FuncName1”的模板函數(等同于執行“FuncName1(this.Admpub)”,將豎線“|”左邊的“.Admpub”變量值作為函數參數傳送)并輸出其返回值。 【條件判斷】 用法1: {{if pipeline}} T1 {{end}} 標簽結構:{{if ...}} ... {{end}} 用法2: {{if pipeline}} T1 {{else}} T0 {{end}} 標簽結構:{{if ...}} ... {{else}} ... {{end}} 用法3: {{if pipeline}} T1 {{else if pipeline}} T0 {{end}} 標簽結構:{{if ...}} ... {{else if ...}} ... {{end}} 其中if后面可以是一個條件表達式(包括管道函數表達式。pipeline即管道),也可以是一個字符竄變量或布爾值變量。當為字符竄變量時,如為空字符串則判斷為false,否則判斷為true。 【遍歷】 用法1: {{range $k, $v := .Var}} {{$k}} => {{$v}} {{end}} range...end結構內部如要使用外部的變量,比如.Var2,需要這樣寫:$.Var2 (即:在外部變量名稱前加符號“$”即可,單獨的“$”意義等同于global) 用法2: {{range .Var}} {{.}} {{end}} 用法3: {{range pipeline}} T1 {{else}} T0 {{end}} 當沒有可遍歷的值時,將執行else部分。 【嵌入子模板】 用法1: {{template "name"}} 嵌入名稱為“name”的子模板。使用前,請確保已經用“{{define "name"}}子模板內容{{end}}”定義好了子模板內容。 用法2: {{template "name" pipeline}} 將管道的值賦給子模板中的“.”(即“{{.}}”) 【子模板嵌套】 {{define "T1"}}ONE{{end}} {{define "T2"}}TWO{{end}} {{define "T3"}}{{template "T1"}} {{template "T2"}}{{end}} {{template "T3"}} 輸出: ONE TWO 【定義局部變量】 用法1: {{with pipeline}} T1 {{end}} 管道的值將賦給該標簽內部的“.”。(注:這里的“內部”一詞是指被{{with pipeline}}...{{end}}包圍起來的部分,即T1所在位置) 用法2: {{with pipeline}} T1 {{else}} T0 {{end}} 如果管道的值為空,“.”不受影響并且執行T0,否則,將管道的值賦給“.”并且執行T1。 說明:{{end}}標簽是if、with、range的結束標簽。 【例子:輸出字符竄】 {{"\"output\""}} 輸出一個字符竄常量。 {{`"output"`}} 輸出一個原始字符串常量 {{printf "%q" "output"}} 函數調用.(等同于:printf("%q", "output")。) {{"output" | printf "%q"}} 豎線“|”左邊的結果作為函數最后一個參數。(等同于:printf("%q", "output")。) {{printf "%q" (print "out" "put")}} 圓括號中表達式的整體結果作為printf函數的參數。(等同于:printf("%q", print("out", "put"))。) {{"put" | printf "%s%s" "out" | printf "%q"}} 一個更復雜的調用。(等同于:printf("%q", printf("%s%s", "out", "put"))。) {{"output" | printf "%s" | printf "%q"}} 等同于:printf("%q", printf("%s", "output"))。 {{with "output"}}{{printf "%q" .}}{{end}} 一個使用點號“.”的with操作。(等同于:printf("%q", "output")。) {{with $x := "output" | printf "%q"}}{{$x}}{{end}} with結構,定義變量,值為執行管道函數之后的結果(等同于:$x := printf("%q", "output")。) {{with $x := "output"}}{{printf "%q" $x}}{{end}} with結構中,在其它動作中使用定義的變量 {{with $x := "output"}}{{$x | printf "%q"}}{{end}} 同上,但使用了管道。(等同于:printf("%q", "output")。) ===============【預定義的模板全局函數】================ 【and】 {{and x y}} 表示:if x then y else x 如果x為真,返回y,否則返回x。等同于Golang中的:x && y 【call】 {{call .X.Y 1 2}} 表示:dot.X.Y(1, 2) call后面的第一個參數的結果必須是一個函數(即這是一個函數類型的值),其余參數作為該函數的參數。 該函數必須返回一個或兩個結果值,其中第二個結果值是error類型。 如果傳遞的參數與函數定義的不匹配或返回的error值不為nil,則停止執行。 【html】 轉義文本中的html標簽,如將“<”轉義為“&lt;”,“>”轉義為“&gt;”等 【index】 {{index x 1 2 3}} 返回index后面的第一個參數的某個索引對應的元素值,其余的參數為索引值 表示:x[1][2][3] x必須是一個map、slice或數組 【js】 返回用JavaScript的escape處理后的文本 【len】 返回參數的長度值(int類型) 【not】 返回單一參數的布爾否定值。 【or】 {{or x y}} 表示:if x then x else y。等同于Golang中的:x || y 如果x為真返回x,否則返回y。 【print】 fmt.Sprint的別名 【printf】 fmt.Sprintf的別名 【println】 fmt.Sprintln的別名 【urlquery】 返回適合在URL查詢中嵌入到形參中的文本轉義值。(類似于PHP的urlencode) =================【布爾函數】=============== 布爾函數對于任何零值返回false,非零值返回true。 這里定義了一組二進制比較操作符函數: 【eq】 返回表達式“arg1 == arg2”的布爾值 【ne】 返回表達式“arg1 != arg2”的布爾值 【lt】 返回表達式“arg1 < arg2”的布爾值 【le】 返回表達式“arg1 <= arg2”的布爾值 【gt】 返回表達式“arg1 > arg2”的布爾值 【ge】 返回表達式“arg1 >= arg2”的布爾值 對于簡單的多路相等測試,eq只接受兩個參數進行比較,后面其它的參數將分別依次與第一個參數進行比較, {{eq arg1 arg2 arg3 arg4}} 即只能作如下比較: arg1==arg2 || arg1==arg3 || arg1==arg4 ... if常見操作符 ~~~ not 非 {{if not .condition}} {{end}} and 與 {{if and .condition1 .condition2}} {{end}} or 或 {{if or .condition1 .condition2}} {{end}} eq 等于 {{if eq .var1 .var2}} {{end}} ne 不等于 {{if ne .var1 .var2}} {{end}} lt 小于 (less than) {{if lt .var1 .var2}} {{end}} le 小于等于 {{if le .var1 .var2}} {{end}} gt 大于 {{if gt .var1 .var2}} {{end}} ge 大于等于 {{if ge .var1 .var2}} {{end}} ~~~
                  <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>

                              哎呀哎呀视频在线观看