Maison > développement back-end > Golang > le corps du texte

Texte/modèle Golang plusieurs conditions avec l'opérateur !not

WBOY
Libérer: 2024-02-09 16:12:22
avant
436 Les gens l'ont consulté

Golang 文本/模板带有 !not 运算符的多个条件

L'éditeur PHP Xigua vous présente une fonctionnalité intéressante dans Golang - plusieurs conditions de texte/modèle avec l'opérateur !not. Cette fonctionnalité est très pratique dans le moteur de modèles de Golang et peut nous aider à gérer les jugements conditionnels de manière plus flexible. En utilisant l'opérateur !not, nous pouvons juger plusieurs conditions en même temps dans le modèle, simplifier la logique du code et améliorer l'efficacité du développement. Cet article présentera en détail comment utiliser cette fonctionnalité et donnera quelques exemples d'utilisation pour aider chacun à mieux la comprendre et l'appliquer. Explorons ensemble cette fonctionnalité intéressante de Golang !

Contenu de la question

Comment utiliser la fonction de modèle indirect pour enchaîner plusieurs conditions dans Go ?

Je veux vérifier .hello 是否不包含“world”并且 .world 是否不包含“hello”,但我不能,因为我得到 2009/11/10 23:00:00 执行 template: template : content:2:5: 在 <not> 执行“content”:not 的参数数量错误:want 1 收到 2message d'erreur

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)
    }

}
Copier après la connexion

Aller au lien du terrain de jeu : https://go.dev/play/p/lWZwjbnSewy

Workaround

not nécessite un paramètre, des parenthèses doivent donc être utilisées.

Si vous faites cela, la condition que vous souhaitez annuler est contains "hello" 或 contains "world" :

{{if not (or (contains .hello "hello") (contains .world "hello")) }}
Copier après la connexion

Cela affichera (essayez-le sur Go Playground) :

not passed
Copier après la connexion

Vous pouvez également écrire cette condition sous la forme not contains "hello" and not contains "world", comme indiqué ci-dessous :

{{if and (not (contains .hello "hello")) (not (contains .world "hello")) }}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!