Я проверил несколько других ответов, и они дали мне хорошие мысли о том, как решить эту проблему, но я все еще не могу понять это.
localID := generateGenericID("local") // type int64
localName := "local" // type string
// set them to pointers as I need them as type *int64 and *string
plocalID := &localID
plocalName := &localName
// create a pointer to a new github org
var org *github.Organization
// create a new general purpose org
o := Org{}
// Check for nil, per several other answers
if plocalName != nil {
o.Name = plocalName
org.Login = plocalName // ERROR
}
if plocalID != nil {
o.ID = plocalID
org.ID = plocalID
}
fmt.Println(*plocalName) // prints local
hunt.addOrganization(org) // takes a pointer to a github org
report.addReportOrganization(&o) // take a pointer to an org
Полученное сообщение об ошибке:
panic: runtime error: invalid memory address or nil pointer
Указывает на строку, помеченную ERROR
.Ошибка не имеет смысла из-за того, что я проверяю nil, поэтому мне интересно, возможно, я являюсь каким-то адским указателем из-за создания переменной, которая является указателем, а затем присвоения ей указателей.
Должен ли я простосоздайте github org как обычную структуру и затем передайте &org
функции поиска.Я попробовал это и обошел ошибку, но кучу других кодов вырвало, поэтому, прежде чем я начну преследовать это, я решил спросить, имеет ли это смысл, если я смотрю в неправильном месте.RTFM со ссылками всегда приветствуется.
Спасибо!