[go-nuts] text/template: Can't call method/function with 0 results.

2021-04-09 Thread 'Johnny Jacobs' via golang-nuts
Hello all,

Is there any reason you can't use a custom function with no return value in 
Go templates?

You get a "Can't call method/function with 0 results." if you try to call 
such a function. FuncMap  
requires 
functions to either return a value, or a value plus an error.

Is there any reason, technical or otherwise, for these restrictions? 
Variables assignment and many Action clauses don't give back values, so it 
doesn't seem like it breaks convention.

I might file an issue for this if nothing meaningful is brought up here.

Best,
Johnny

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/fdb52e84-0cea-4269-9016-cc1d5064cc5bn%40googlegroups.com.


Re: [go-nuts] Re: text/template: Can't call method/function with 0 results.

2021-04-09 Thread 'Johnny Jacobs' via golang-nuts
I'm mostly thinking of functions with side-effects, much like {{ $var :=
"val" }}. It doesn't make much sense for these to return anything.

Not allowing 0-valued functions limits functions you can call on objects in
templates as well. For example, a trivial map implementation:
type MyMap map[string]interface{}
func (m MyMap) Set(key string, val interface{}) { m[key] = val }

And then in your function map:
"Map": func map() MyMap { return make(MyMap) }

You can't actually use Set in a template as it has void return.

On Fri, Apr 9, 2021 at 11:19 AM aind...@gmail.com 
wrote:

> I believe functions are meant to be used as part of a pipeline, so having
> 1 value (+ error) makes it so the pipeline only stops execution on an
> error.
> I personally have not found a use for void functions, and it makes it
> easier
> to visualize the template execution model.
> On Friday, April 9, 2021 at 2:05:33 PM UTC-4 Johnny Jacobs wrote:
>
>> Hello all,
>>
>> Is there any reason you can't use a custom function with no return value
>> in Go templates?
>>
>> You get a "Can't call method/function with 0 results." if you try to call
>> such a function. FuncMap  
>> requires
>> functions to either return a value, or a value plus an error.
>>
>> Is there any reason, technical or otherwise, for these restrictions?
>> Variables assignment and many Action clauses don't give back values, so it
>> doesn't seem like it breaks convention.
>>
>> I might file an issue for this if nothing meaningful is brought up here.
>>
>> Best,
>> Johnny
>>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "golang-nuts" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/golang-nuts/xAvfWunrHss/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> golang-nuts+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/golang-nuts/41190a31-3151-4a5a-b9b8-631198dca58fn%40googlegroups.com
> 
> .
>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CABERFJUo3pM1y2EUY9RJZwW2FCY8-%2ByooZU%2BfAtiO7V4FLBxjg%40mail.gmail.com.