Tôi đang cố gắng viết chuỗi như thế này bằng hệ thống mẫu của go: (p1, p2, p3), trong đó p1, p2, .. xuất phát từ một mảng trong chương trình. Vấn đề của tôi là làm thế nào để đặt dấu phẩy đúng cho phần tử cuối cùng (hoặc thứ nhất).Xử lý trường hợp đặc biệt cho phần tử cuối cùng của một phạm vi trong các mẫu văn bản của Google Go
phiên bản làm việc phi của tôi mà kết quả đầu ra (p1, p2, p3,) trông như thế này:
package main
import "text/template"
import "os"
func main() {
ip := []string{"p1", "p2", "p3"}
temp := template.New("myTemplate")
temp,_ = temp.Parse(paramList)
temp.Execute(os.Stdout, ip)
}
const paramList =
`{{ $i := . }}({{ range $i }}{{ . }}, {{end}})`
đầu mối tốt nhất của tôi cho đến nay được tìm thấy ở đây http://golang.org/pkg/text/template/ trong tuyên bố sau:
Nếu một hành động "range" khởi tạo một biến, biến được đặt thành các phần tử kế tiếp của phép lặp. Ngoài ra, một "phạm vi" có thể tuyên bố hai biến, cách nhau bằng một dấu phẩy:
$index, $element := pipeline
trong trường hợp $ index và $ phần tử được thiết lập để các giá trị liên tiếp của mảng index/lát hoặc bản đồ chính và yếu tố , tương ứng. Lưu ý rằng nếu chỉ có một biến, nó được gán phần tử; điều này ngược lại với quy ước trong mệnh đề Go. nơi đề xuất rằng chỉ mục
Điều này gợi ý rằng có thể giữ chỉ mục trong lần lặp nhưng tôi không thể tìm ra ý nghĩa của phạm vi tuyên bố hai biến và vị trí trong mẫu. được cho là được tuyên bố.
Cảm ơn. Điều đó giải quyết nó! – Laserallan