On Wed, May 2, 2018 at 11:47 AM, Burak Serdar wrote:

> >> >  // now
> >> >  env := make(map[string]string)
> >> >  for _, e := range os.Environ() {
> >> >  sep := strings.Index(e, "=")
> >> >  env[e[0:sep]] = e[sep+1:]
> >> >  }
> >> >  // how to add env into data as ENV so that it can be accessed within
> >>
> >> args:=map[string]interface{}{"ENV":env}
> >> generic(templateStr,args)
> >
> >
> > It looks to me that the above code just pass env (only) to generic,
> instead
> > of adding into data.
>
> Sorry, I didn't look at the code you have in the playground.
>
> You're passing:
>
> sweaters := Inventory{"wool", 17}
> generic("{{.Count}} items are made of {{.Material}}\n", sweaters)
>
> You can't add "ENV" to an "Inventory" unless it is already a part of
> it. With this code, you're passing in only one Inventory instance.
> Template evaluation can only access the public names in that struct,
> so you can't add more.


I'm trying to provide a *general *library that take an arbitrary data, so
I'd not to ask lib user to add that ENV part *if possible*.

If  the text Template library can deal with arbitrary data, I think there
should be a way for my general library to do as well, but I just don't know
how. Is the following the magic spell?

value, ok := data.(reflect.Value)

Thanks for your help anyway.

-- 
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