go - 引用未定义的标识符 bytes.ReplaceAll

标签 go replace slice replaceall

我正在尝试构建一个简单的网络服务器。我想替换所有 \n<br> . 我想用 bytes为此,因为我的页面主体存储为 []byte .

我使用 bytes.ReplaceAll()为了这。但它一直说它是对未定义标识符的引用。

谁能告诉我为什么?我在在线编译器中尝试了完全相同的行,它工作得很好。我想念图书馆吗?

请参阅下面的代码:

import (
    "bytes"
    "html/template"
    "io/ioutil"
    "log"
    "net/http"
    "regexp"
)

type Page struct {
    Title string
    Body  []byte
}

func editHandler(w http.ResponseWriter, r *http.Request, title string) {
    p, err := loadPage(title)
    if err != nil {
        p = &Page{Title: title}
    }
    // THE LINE THAT CAUSES TROUBLE
    p.Body = bytes.ReplaceAll(p.Body, []byte("\n"), []byte("<br>"))

    renderTemplate(w, "edit", p)
}

最佳答案

bytes包是标准库的一部分,因此如果您有可用的 go 工具,您不太可能没有它。

但请注意 bytes.ReplaceAll()添加于 Go 1.12 ,因此如果您有较旧的 Go SDK,则此功能将不可用。

执行go version就可以知道了。从官方网站获取最新的 Go:https://golang.org/dl/

关于go - 引用未定义的标识符 bytes.ReplaceAll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55026604/

相关文章:

mongodb - Go mongodb驱动程序忽略聚合中的管道

sql - 奇怪的 Golang SQL 错误 - WHERE 子句

java - 转义 '\' 以与 Java ReplaceAll 方法一起使用

xml - 找不到 XSLT 替换函数

c - 如何在 C 中对字符串进行切片?

performance - 为什么在 Golang 中迭代 map 比迭代 slice 慢得多?

go - 客户端断开连接时如何正确使用 ctx.Done()?

regex - Eclipse 中的替换问题

fortran - 在 Fortran 中,切片数组是否会在内存中创建副本?

http - Go http 无法处理没有 PATH 的 HTTP 请求