Teks/templat Golang berbilang syarat dengan !bukan operator

WBOY
Lepaskan: 2024-02-09 16:12:22
ke hadapan
465 orang telah melayarinya

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

}
Salin selepas log masuk

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")) }}
Salin selepas log masuk

Ini akan menghasilkan (cuba di Go Playground):

not passed
Salin selepas log masuk

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")) }}
Salin selepas log masuk

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!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan