Wenn man mit einer Datenbank arbeitet, ist ein Null*
Typ für die meisten Szenarien nützlich, da man normalerweise keinen "Null" -Wert durchläuft, sondern die NOT NULL-Bedingungen usw. und Sie daran erinnern, dass Sie nicht alle notwendigen Daten weitergegeben haben.golang funktioniert effektiv mit Null * Typen
So erstellen Sie eine Struktur wie folgt aus:
type Role struct {
Id sql.NullInt64
Code sql.NullString
}
Das ist großartig, aber jetzt können Sie keinen direkten Zugriff auf die Eigenschaften erhalten und Role.Id.Value
sowohl bekommen und stellen Sie verwenden müssen, das ist ziemlich erhalten wird Alt in einer großen App, wenn Sie den zusätzlichen Schritt jedes Mal haben müssen, wenn Sie auf die Eigenschaften zugreifen möchten.
Es wäre schön, wenn Sie direkt zB zuweisen könnten. Role.Code = "Fsfs"
, und in der Lage sein, etwas wie Role.Code.IsNull
zu tun, wenn Sie an Null-Überprüfung interessiert sind. Ist so etwas möglich?
Pointers haben Null als Nullwert, wenn Sie nicht mit ihnen zu arbeiten nichts dagegen - 'Typ Rollen struct {Code * string}' – codepushr