Heim > Artikel > Backend-Entwicklung > Golang-Text/Vorlage für mehrere Bedingungen mit dem Operator !not
Der PHP-Editor Xigua stellt Ihnen eine interessante Funktion in Golang vor – mehrere Bedingungen für Text/Vorlage mit dem Operator !not. Diese Funktion ist in der Template-Engine von Golang sehr praktisch und kann uns dabei helfen, bedingte Urteile flexibler zu handhaben. Durch die Verwendung des !not-Operators können wir mehrere Bedingungen gleichzeitig in der Vorlage beurteilen, die Codelogik vereinfachen und die Entwicklungseffizienz verbessern. In diesem Artikel wird die Verwendung dieser Funktion im Detail vorgestellt und einige Anwendungsbeispiele gegeben, damit jeder sie besser verstehen und anwenden kann. Lassen Sie uns gemeinsam dieses interessante Golang-Feature erkunden!
Wie verwende ich die indirekte Vorlagenfunktion, um mehrere Bedingungen in Go zu verketten?
Ich möchte die .hello
是否不包含“world”并且 .world
是否不包含“hello”,但我不能,因为我得到 2009/11/10 23:00:00 执行 template: template : content:2:5: 在 238ee6817c12cd3b0f999d2fed793ff9 执行“content”:not 的参数数量错误:want 1 收到 2
Fehlermeldung
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) } }
Gehe zum Playground-Link: https://go.dev/play/p/lWZwjbnSewy
not
erfordert einen Parameter, daher müssen Klammern verwendet werden.
Wenn Sie dies tun, ist die Bedingung, die Sie negieren möchten, contains "hello" 或 contains "world"
:
{{if not (or (contains .hello "hello") (contains .world "hello")) }}
Dies wird ausgegeben (versuchen Sie es auf Go Playground):
not passed
Sie können diese Bedingung auch als not contains "hello" and not contains "world"
schreiben, wie unten gezeigt:
{{if and (not (contains .hello "hello")) (not (contains .world "hello")) }}
Das obige ist der detaillierte Inhalt vonGolang-Text/Vorlage für mehrere Bedingungen mit dem Operator !not. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!