You'd want to use a function that returns another function and takes the 
dependencies as arguments, something like this:

func Sender(b *B) func(m *tb.Message) {
    return func(m *tb.Message) {
        b.Send(m.Sender, "hello world")
    }
}

s := Sender(b)
b.Handle("/hello", s)
b.Handle("/hi", s)


—Sam

On Tue, Aug 7, 2018, at 07:29, Tong Sun wrote:
> Hi, 
> 
> Consider this function:
> 
>       b.Handle("/hello", func(m *tb.Message) {
>               b.Send(m.Sender, "hello world")
>       })
> 
> 
> I tried to refactor the above function to func sayHi(m *tb.Message) {...}, 
>  so that I can give an alias to the above /hello command (say to define a 
> /hi command), but found that I cannot use bwithin it any more.
> 
> So, how to refactor out this function?


-- 
Sam Whited
s...@samwhited.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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to