Что такое нуль для строки?
func NewKey(c appengine.Context, kind, stringID string, intID int64, parent *Key) *Key
В документации написано:
NewKey создает новый ключ. вид не может быть пустым. Либо один, либо оба stringID и intID должны быть ноль. Если оба значения равны нулю, ключ возвращается неполно. parent должен быть либо полным ключом, либо нулем.
Что такое нуль для строки?
Я пробовал 0
и nil
, и у меня появились такие ошибки, как:
cannot use nil as type string in function argument
Ответы
Ответ 1
Что ""
:
var s string
fmt.Println(s=="") // prints "true"
Строка не может быть nil (но a *string
can).
Вы можете просто протестировать
if stringId=="" {
Чтобы передать нулевую строку в stringID
, используйте
k := NewKey(c, "kind", "", 0, p)
Из спецификации:
Когда память выделяется для хранения значения, либо через объявление или вызов make или новый, и явная инициализация, память получает инициализацию по умолчанию. каждый элемент такого значения устанавливается равным нулю для своего типа: false для booleans, 0 для целых чисел, 0.0 для float, "" для строк и nil для указателей, функций, интерфейсов, срезов, каналов и карт.
Ответ 2
var str string
fmt.Println(str == "")
поставьте выше в свой script и запустите его.
вы можете получить значение true, значение golang string по умолчанию равно "".
Ответ 3
в этом случае пустая строка, или вы можете использовать NewIncompleteKey()