Go 对未定义标识符字节的引用。ReplaceAll

Go 对未定义标识符字节的引用。ReplaceAll,go,replace,slice,replaceall,Go,Replace,Slice,Replaceall,我正在尝试构建一个简单的Web服务器。我想用替换所有\n。 我想为此使用字节,因为我的页面正文存储为[]字节 我使用bytes.ReplaceAll()进行此操作。但它一直说它是对未定义标识符的引用 有人能告诉我为什么吗?我在一个在线编译器中尝试了完全相同的代码行,它运行得很好。我想念图书馆吗 请参见下面的我的代码: import ( "bytes" "html/template" "io/ioutil" "log" "net/http" "reg

我正在尝试构建一个简单的Web服务器。我想用

替换所有
\n
。 我想为此使用
字节
,因为我的页面正文存储为
[]字节

我使用
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)
}
导入(
“字节”
“html/模板”
“io/ioutil”
“日志”
“net/http”
“regexp”
)
类型页结构{
标题字符串
正文[]字节
}
func editHandler(w http.ResponseWriter,r*http.Request,标题字符串){
p、 错误:=加载页(标题)
如果错误!=零{
p=&Page{Title:Title}
}
//引起麻烦的线路
p、 Body=bytes.ReplaceAll(p.Body,[]字节(“\n”),[]字节(“
”) renderTemplate(w,“编辑”,p) }
该软件包是标准库的一部分,因此,如果您有可用的
go
工具,则不太可能没有该软件包

但请注意,这是添加的,因此,如果您有一个较旧的Go SDK,此功能将不可用

执行
go version
以查找。从官方网站获取最新信息:

进一步访问icza

对于
1.12
之前的Go版本,以下是等效的:

bytes.ReplaceAll(a, b, c)

查看

的实现非常感谢:)节省我的时间:)我使用此解决方案更新了ubuntu上的go版本
bytes.Replace(a, b, c, -1)