Editor PHP Xigua memperkenalkan kepada anda ciri menarik di Golang - berbilang syarat teks/templat dengan operator !bukan. Ciri ini sangat praktikal dalam enjin templat Golang dan boleh membantu kami mengendalikan pertimbangan bersyarat dengan lebih fleksibel. Dengan menggunakan operator !not, kita boleh menilai berbilang keadaan pada masa yang sama dalam templat, memudahkan logik kod dan meningkatkan kecekapan pembangunan. Artikel ini akan memperkenalkan secara terperinci cara menggunakan ciri ini dan memberikan beberapa contoh penggunaan untuk membantu semua orang memahami dan menerapkannya dengan lebih baik. Mari kita terokai ciri Golang yang menarik ini bersama-sama!
Bagaimana untuk menggunakan fungsi templat tidak langsung untuk merantai berbilang syarat dalam Go?
Saya ingin menyemak .hello
是否不包含“world”并且 .world
是否不包含“hello”,但我不能,因为我得到 2009/11/10 23:00:00 执行 template: template : content:2:5: 在 <not> 执行“content”:not 的参数数量错误:want 1 收到 2
mesej ralat
package main import ( "log" "os" "strings" "text/template" ) var ( templateFuncMap = template.FuncMap{ "contains": strings.Contains, } ) func main() { // Define a template. const temp = ` {{if not (contains .hello "hello") (contains .world "hello") }} passed {{else}} not passed {{end}}` s := map[string]string{ "hello": "world", "world": "hello", } t := template.Must(template.New("content").Funcs(templateFuncMap).Parse(temp)) err := t.Execute(os.Stdout, s) if err != nil { log.Println("executing template:", err) } }
Pergi ke pautan taman permainan: https://go.dev/play/p/lWZwjbnSewy
not
memerlukan parameter, jadi tanda kurung mesti digunakan.
Jika anda melakukan ini, syarat yang anda ingin menafikan ialah contains "hello" 或 contains "world"
:
{{if not (or (contains .hello "hello") (contains .world "hello")) }}
Ini akan menghasilkan (cuba di Go Playground):
not passed
Anda juga boleh menulis syarat ini sebagai not contains "hello" and not contains "world"
, seperti yang ditunjukkan di bawah:
{{if and (not (contains .hello "hello")) (not (contains .world "hello")) }}
Atas ialah kandungan terperinci Teks/templat Golang berbilang syarat dengan !bukan operator. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!