コードを見なくても、私にできる最善のことは、必要な機能を示す例を提供することです。
推測する必要がある場合は、渡されたデータは文字列ポインターではなく文字列であると言えます。文字列は nil/null の値を持つことはできず、文字列ポインターのみが可能です。それは「null」ではなく「」を生成しますが(ここで示されているように)、コードでこれが何か奇妙なことをしているとしか想像できません。
リンクの腐敗を防ぐために、以下のコード例を複製しましたが、リンクをクリックして出力を確認することをお勧めします。
必要な機能:
package main
import (
"log"
"os"
"html/template"
)
type TemplateData struct {
Email *string
}
func main() {
const temp = "<script>var email = {{.Email}};</script>\n"
t := template.Must(template.New("email_template").Parse(temp))
email := "somebody@somewhere.com"
err := t.Execute(os.Stdout, TemplateData{
Email: &email,
})
if err != nil {
log.Println("executing template:", err)
}
err = t.Execute(os.Stdout, TemplateData{
Email: nil,
})
if err != nil {
log.Println("executing template:", err)
}
}
「null」文字列を使用しようとしています:
package main
import (
"log"
"os"
"html/template"
)
type TemplateData struct {
Email string
}
func main() {
const temp = "<script>var email = {{.Email}};</script>\n"
t := template.Must(template.New("email_template").Parse(temp))
email := "somebody@somewhere.com"
err := t.Execute(os.Stdout, TemplateData{
Email: email,
})
if err != nil {
log.Println("executing template:", err)
}
err = t.Execute(os.Stdout, TemplateData{
})
if err != nil {
log.Println("executing template:", err)
}
}