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)
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 怎样才能让鼠标沿着线条的中心线轨迹移动
  • ¥60 用visual studio编写程序,利用间接平差求解水准网
  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?
  • ¥15 win10权限管理,限制普通用户使用删除功能
  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)
  • ¥65 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?