1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/dana-go-database-sql-tutorial-translation

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
08.0.nulls.md 2.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 02.03.2025 18:11 571ab8e
layout title
article
Работа с NULL значениями

Столбцы со значением NULL могут вызывать проблемы и приводят к появлению многочисленных некрасивых решений. Если возможно, избегайте таких столбцов. В противном случае вам потребуется использовать специальные типы из пакета database/sql, чтобы работать с ними, либо определите свои собственные.

Существуют типы для nullable булевых значений, строк, целых чисел и вещественных чисел. Вот как вы можете использовать их:

for rows.Next() {
    var s sql.NullString
    err := rows.Scan(&s)
    // проверьте ошибку
    if s.Valid {
        // используйте s.String
    } else {
        // значение NULL
    }
}

Ограничения nullable типов и причины избегать nullable столбцов, если вам требуется больше убеждений:

  1. Нет типа sql.NullUint64 или sql.NullYourFavoriteType. Вам придется определить свои собственные типы для этих случаев.
  2. Nullable значения могут быть сложными и не будущедоказательными. Если вы считаете, что что-то не будет иметь значения NULL, но оказывается, что это неверно, ваша программа может упасть, возможно, достаточно редко, чтобы вы не заметили ошибки до выпуска.
  3. Одним из преимуществ Go является наличие полезного значения по умолчанию для каждого переменного. Это не применимо к nullable объектам.

Если вам нужно определить свои собственные типы для работы с NULL значениями, вы можете скопировать дизайн sql.NullString.

Предыдущий: Обработка ошибок Следующий: Работа с неизвестными столбцами

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/dana-go-database-sql-tutorial-translation.git
git@api.gitlife.ru:oschina-mirror/dana-go-database-sql-tutorial-translation.git
oschina-mirror
dana-go-database-sql-tutorial-translation
dana-go-database-sql-tutorial-translation
master