I see, well that makes the compiler error make more sense. You're trying to declare a function type within a function. Use a function literal instead, for example: `doIT := func(p Params) string { ... }`.
On Tue, Dec 13, 2016 at 11:18 AM, Betsy Lichtenberg <bet...@nestlabs.com> wrote: > The expression is inside of the main function. > > package main > > import ( > "fmt" > "strings" > "net/http" > "io/ioutil" > ) > > func main() { > > url := "https://developer-api.nest.com/structures" > > payload := strings.NewReader("code=aaaaa&client_id=bbbb&client_secret= > cccc&grant_type=authorization_code") > > req, _ := http.NewRequest("GET", url, payload) > > req.Header.Add("content-type", "application/json") > > type Params struct { > auth string > } > > func doIt(p Params) string { > return p.auth > } > > doIt(Params{auth: xxxx}) > > res, _ := http.DefaultClient.Do(req) > > defer res.Body.Close() > body, _ := ioutil.ReadAll(res.Body) > > fmt.Println(res) > fmt.Println(string(body)) > > } > > On Tue, Dec 13, 2016 at 11:13 AM, Chris Manghane <cm...@google.com> wrote: > >> That error seems to be from writing that expression outside of a >> function. There's no problem with structs supporting string fields: >> https://play.golang.org/p/YeP2qhRdxp. >> >> On Tue, Dec 13, 2016 at 10:45 AM, Betsy Lichtenberg <bet...@nestlabs.com> >> wrote: >> >>> Do structs support strings? I tried this: >>> >>> type Params struct { >>> auth string >>> } >>> >>> func doIt(p Params) string { >>> return p.auth >>> } >>> >>> doIt(Params{auth: xxxx}) >>> >>> >>> I'm getting these errors: >>> >>> betsyl-macbookpro:~ betsyl$ go run get1.go >>> >>> # command-line-arguments >>> >>> ./get1.go:25: syntax error: unexpected doIt, expecting ( >>> >>> ./get1.go:29: syntax error: unexpected literal .2, expecting comma or } >>> >>> On Tue, Dec 13, 2016 at 7:11 AM, Val <delepl...@gmail.com> wrote: >>> >>>> Hello Betsy >>>> There is no "passing optional arguments by name" in go. >>>> >>>> This link [1] has an overview what what can or can't be done for >>>> optional params : >>>> - the *Functional options* technique. >>>> - or you may define a struct as parameter, then call it with only the >>>> fields you're interested in : [2] >>>> This implies that "the zero values must be meaningful (i.e. acceptable >>>> in your context : nil, 0, etc.)" >>>> >>>> things := Things{amount: 13} >>>> show(things) >>>> >>>> [1] http://stackoverflow.com/questions/2032149/optional-parameters >>>> [2] https://play.golang.org/p/yiKzomwTKM >>>> >>>> On Tuesday, December 13, 2016 at 6:46:23 AM UTC+1, bet...@google.com >>>> wrote: >>>>> >>>>> Hi, >>>>> >>>>> In Python, I can include params like this: >>>>> >>>>> ===================== >>>>> >>>>> *params = {'auth': 'XXXXXXXX'}* >>>>> >>>>> response = requests.request("GET", url, data=payload, headers=headers, >>>>> *params=params*) >>>>> >>>>> ===================== >>>>> >>>>> Any pointers on how Golang does this? >>>>> >>>>> Thanks, >>>>> Betsy >>>>> >>>> >>> -- >>> 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. >>> >> >> > -- 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.