Ngày 03 tháng 10 năm 2020 - Máy tính
Gói text/template
sam86.vip 2023 của Golang là một công cụ render mẫu dữ liệu được điều khiển bởi dữ liệu. Nó cung cấp các chức năng như kiểm tra điều kiện, duyệt qua mảng hoặc map; gán tham số, gọi hàm hoặc phương thức; mở rộng với các hàm tùy chỉnh, nhúng và tái sử dụng mẫu. Với công cụ này, có thể dễ dàng thực hiện việc render văn bản phức tạp. Chẳng hạn, Helm Template đã dựa trên nó để triển khai công việc render mạnh mẽ cho các file cấu hình Kubernetes.
Bài viết này sẽ trình bày một ví dụ minh họa cách sử dụng text/template
, mã nguồn đã được lưu trữ trên GitHub.
1 Mã ví dụ
gói chính
nhập (
"os"
"chuỗi"
"text/template"
)
biến cố text = `
{{/* Đây là mẫu của sở thú */}}{{with .Name}}Chào [iwin 99bet](/post/5768/) mừng đến với {{.}}{{end}}Ở đây có {{len .Animals}} động vật, chúng là:
{{range .Animals}}{{. | upper}},
{{end}}{{if gt (len .Zookeepers) 0}}Ở đây có {{len .Zookeepers}} nhân viên chăm sóc, họ là:
{{range $no, $name := .Zookeepers}}{{printf "%03d" $no}}: {{$name-}}{{end}}{{end}}{{block "Welcome" .Name}}Bạn rất được chào đón khi ghé thăm {{.}} lần tới!{{end}}`
kiểu Zoo có {
Tên xâu
ĐộngVật []xâu
NhânViênSởThu chìa[xâu]
}
chức năng chính() {
// Mẫu
mẫu := template.Must(template.New("sởthú").Funcs(template.FuncMap{
"upper": func(s xâu) xâu { // Hàm tự định nghĩa
trởvề chuỗi.ToUpper(s)
},
}).Parse(text))
// Nhân viên sở thú
nhânViênSởThu := chìa[xâu]{
0: "Alan",
1: "Larry",
2: "Alice",
}
// Sở thú
sởThu := &Zoo{
"Beijing Zoo",
[]xâu{"elephant", "tiger", "dolphin"},
nhânViênSởThu,
}
// Thực thi
mẫu.Execute(os.Stdout, sởThu)
}
2 Kết quả chạy
Chào mừng đến với Beijing Zoo
Ở đây có 3 động vật, chúng là:
ELEPHANT,
TIGER,
DOLPHIN,
Ở đây có 3 nhân viên chăm sóc, họ là:
000: Alan
001: Larry
002: Alice
Bạn rất được chào đón khi ghé thăm Beijing Zoo lần tới!
coi đá gà thomo c1 [1] ]( !
#Golang