Как преобразовать pq.Int64Array в строку? - PullRequest
0 голосов
/ 06 апреля 2019

В Golang приложении я делаю sql запрос к PostgreSQL базе данных, которая возвращает мне массив int.

var identifiers [] pq.Int64Array

// Execute SQL query by "database/sql" package.
if err := database.DBSQL.QueryRow(sqlStatement.String()).Scan(&identifiers); err != nil {
    log.Println(err)
    utils.ResponseWithError(responseWriter, http.StatusInternalServerError, err.Error())
    return
}

Как преобразовать identifiers массив с pq.Int64Array элементами в строкугде элементы массива разделены запятой?

1 Ответ

0 голосов
/ 06 апреля 2019

Поскольку тип pq.Int64Array является типом среза, приложение сканирует срезы.Сканирование только на фрагмент:

var identifiers pq.Int64Array
if err := database.DBSQL.QueryRow(sqlStatement.String()).Scan(&identifiers); err != nil {
    log.Println(err)
    utils.ResponseWithError(responseWriter, http.StatusInternalServerError, err.Error())
    return
}

Преобразование каждого идентификатора в строку и добавление в буфер.Вставьте разделители между каждым идентификатором.Преобразовать буфер в строку, когда закончите.

var buf []byte
for i, id := range identifiers {
    if i > 0 {
        buf = append(buf, ',')
    }
    buf = strconv.AppendInt(buf, int64(id), 10)
}
s := string(buf)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...