Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Teks/templat Golang berbilang syarat dengan !bukan operator

Teks/templat Golang berbilang syarat dengan !bukan operator

WBOY
WBOYke hadapan
2024-02-09 16:12:22464semak imbas

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

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!

Kandungan soalan

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: 在 238ee6817c12cd3b0f999d2fed793ff9 执行“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

Penyelesaian

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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam