I'm learning Go (using 1.9.2 on Centos 7). Consider the following 
trivial program, which works fine: 

package main 
import "fmt" 
type symbol struct { 
    name string 
    fn func(int) 
    options int 
} 
func main() { 
symbols := [] symbol { 
    {"jon",x, 4}, 
    } 
    symbols[0].fn(13) 
    fmt.Println("symbols:  ", symbols) 
} 
func x(arg int) { 
    fmt.Println("x: arg = ", arg) 
} 

This does what I expect, which is to show how to 
initialize a structure to contain various values. 

I then tried to modify this program so that the structure 
initialization is done outside any function, like so: 

package main 
import "fmt" 
type symbol struct { 
    name string 
    fn func(int) 
    options int 
} 
var symbols = [] symbol  { 
    {"jon",x, 4,} 
} 
func main() { 
    symbols[0].fn(13) 
    fmt.Println("symbols:  ", symbols) 
} 
func x(arg int) { 
    fmt.Println("x: arg = ", arg) 
} 

However, this doesn't compile, saying 
./bad.go:12:18: syntax error: unexpected newline, expecting comma or } 

I don't understand how to fix this. I have to admit that I don't 
know why one style would be preferred over the other, but I'd like to 
understand how to correct the second case. 

Cordially, 
Jon Forrest 

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to