Wednesday 15 April 2015

go - Why is my tiedot DB pointer nil? -



go - Why is my tiedot DB pointer nil? -

var mydb *db.db func init() { mydb, err := db.opendb("db") if err := mydb.create("feeds"); err != nil {} if err := mydb.create("votes"); err != nil {} } func idb() { _, name := range mydb.allcols() { fmt.printf("i have collection called %s\n", name) } } func main() { idb() }

i next error:

runtime error: invalid memory address or nil pointer dereference

it because mydb nil, why , how can prepare can setup mydb in init?

note if drop in main without using global variable, works.

short variable declarations

a short variable declaration uses syntax:

shortvardecl = identifierlist ":=" expressionlist .

it shorthand regular variable declaration initializer expressions no types:

"var" identifierlist = expressionlist .

mydb local init function variable. := short variable declaration.

mydb, err := db.opendb("db")

to update bundle mydb variable, write,

var err error mydb, err = db.opendb("db")

go tiedot

No comments:

Post a Comment