我正在尝试构建一个简单的网络服务器。我想替换所有 \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/