Ссылка на неопределенный идентификатор bytes.ReplaceAll - PullRequest
0 голосов
/ 06 марта 2019

Я пытаюсь создать простой веб-сервер.Я хочу заменить все \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)
}

Ответы [ 2 ]

7 голосов
/ 06 марта 2019

Пакет bytes является частью стандартной библиотеки, поэтому маловероятно, что он у вас не будет, если у вас есть инструмент go.

Но учтите, что bytes.ReplaceAll() был добавлен в Go 1.12 , поэтому если у вас более старый Go SDK, эта функция будет вам недоступна.

Выполнитьgo version чтобы узнать.Получить последнюю версию Go с официального сайта: https://golang.org/dl/

0 голосов
/ 18 июня 2019

В дополнение к ответу Ицзы ,

Для версий Go до 1.12 следующие значения эквивалентны:

bytes.ReplaceAll(a, b, c)

и

bytes.Replace(a, b, c, -1)

См. Реализацию ReplaceAll

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...