Значения указателя кодируются как значение, на которое указывает. Указатель nil кодируется как нулевой объект JSON.
blockquote>Таким образом, вы можете сохранить указатель на строку, которая будет закодирована как строка, если не равна nil, и будет закодирована как «null», если nil
type student struct { FirstName *string `json:"first_name"` MiddleName *string `json:"middle_name"` LastName *string `json:"last_name"` }
Владельцем является Окно* ответственный за управление или диалоговое окно (например, ответственный за создание/уничтожение окна).
Родитель является следующим старшим окном* к управлению или диалоговому окну в цепочке окна, но не на самом деле ответственен за него (не обязательно заботится о его жизненном цикле, и т.д.). Родитель окна может также быть своим владельцем.
*Window по сравнению с окном: Окно является фактическим окном, отображенным на экране; окно является любым объектом с HWND (включает кнопки, панели, и т.д.).
Владение является отношениями между двумя высокоуровневыми окнами, в то время как Родитель является отношениями между верхним уровнем и WS_CHILD, или WS_CHILD и другим WS_CHILD.
родитель кнопки является формой, это идет, в то время как окно сообщения принадлежит форме, которая показала его.
Read эта статья от иерархии Microsoft Win32 Окна и Стилей для получения намного более ясного понимания Владения, Порождения, ZOrder, SetWindowLong, GetWindow и всех других противных битов API Win32 для создания отношений окна.
РЕДАКТИРОВАНИЕ: Похож на Microsoft, удалил то содержание, вот другое разумное сводка Владения / Порождение .