На языке go переменные, объявленные без начального значения, имеют нулевые значения, а не null
значение.
- 0 для всех целочисленных типов
- "" ( пустая строка) для строк
- ноль для интерфейсов, срезов, указателей
Итак, когда вам нужно различить значение null
и нулевое значение, вам нужно использовать pointers
потому что pointers
нулевое значение равно nil
. Golang не разрешает null
, его версия равна нулю, в некоторых языках.
Пример:
В базе данных, как MySql "" ( пустая строка) и 0
не является нулевым значением для строковых и целых типов. Если вам нужно сохранить строковое значение для "" (пустая строка) и нулевое значение по-разному в базе данных, вам нужно использовать указатель на строку в структуре тела запроса.