dscizpq790832708 2014-11-05 20:11
浏览 1052
已采纳

Go:分割字节。换行符

Pretty new to Go and running into a problem like:

var metrics bytes.Buffer

metrics.WriteString("foo")
metrics.WriteString("
")

metrics.WriteString("bar")
metrics.WriteString("
")

Now I want to cycle through that metrics and split by newline. I tried

for m := strings.Split(metrics.String(), "
") {
     log.Printf("metric: %s", m)
}

but I get the following

./relay.go:71: m := strings.Split(metrics.String(), "
") used as value
  • 写回答

2条回答 默认 最新

  • dongxie3701 2014-11-05 20:25
    关注

    Considering that strings.Split() returns an array, it would be easier to use range

    m := strings.Split(metrics.String(), "
    ")
    for _, m := range strings.Split(metrics.String(), "
    ") {
        log.Printf("metric: %s", m)
    }
    

    Note, to read lines from a string, you can consider "go readline -> string":

    bufio.ReadLine() or better: bufio.Scanner

    As in:

    const input = "Now is the winter of our discontent,
    Made glorious summer by this sun of York.
    "
    scanner := bufio.NewScanner(strings.NewReader(input))
    

    See more at "Scanner terminating early".

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据