drdyf42880 2014-08-15 17:13
浏览 51
已采纳

前往:使用html / template在新行上将切片中的每个元素打印

How do I print "apple", "orange", and "pear" on a new line?

GO:

const titlepage = `
<html>
<h1>{{ .Title}}</h1>
<h1>{{ range $i := .Body}}{{$i}}{{end}}</h1>
</html>
`
type tp struct {
    Title string
    Body []string
}

func Read() ([]string) {
    a := []string{"apple", "orange", "pear"}
    return a
}

func main() {
    as := tp{Title: "Hello", Body: Read()}
    t := template.Must(template.New("Tele").Parse(titlepage))
    t.Execute(os.Stdout, as)
}

Current output:

<html>
<h1>Hello</h1>
<h1>appleorangepear</h1>
</html>

The code on Go Playground: http://play.golang.org/p/yhyfcq--MM

  • 写回答

1条回答 默认 最新

  • duandeng2011 2014-08-15 17:23
    关注

    Newline characters from the template will be copied into the result. If you want a newline after {{$i}}, you just need to add one.

    Edit: If you want a newline to appear in the web browser, you need to use an HTML element like <br/>, or put your items in a <li> (list). I added a <br/> to the code.

    http://play.golang.org/p/1G0CIfhb8a

    const titlepage = `
    <html>
    <h1>{{ .Title}}</h1>
    <h1>{{ range $i := .Body}}{{$i}}<br/>
    {{end}}</h1>
    </html>
    `
    type tp struct {
        Title string
        Body []string
    }
    
    func Read() ([]string) {
        a := []string{"apple", "orange", "pear"}
        return a
    }
    
    func main() {
        as := tp{Title: "Hello", Body: Read()}
        t := template.Must(template.New("Tele").Parse(titlepage))
        t.Execute(os.Stdout, as)
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?