duan2477
2018-09-05 22:18
浏览 61
已采纳

在Golang中使用接收器返回函数

I am new to Golang. And I am trying to use a decorator which returns a function with a receiver. How can I do that?

type myStruct struct {
    s string
}

func myFunc(s string) {
    fmt.Println(s)
}

// Here I want to return a function with a receiver
func (*myStruct) myDecorator(fn func(string)) (*myStruct)func(string){
    return (ms *myStruct)func(s string) {
        fn(ms+s)
    }
}

func main() {
    ms := myStruct{"Hello"}
    // Some func is function with receiver as myStruct pointer
    someFunc := myDecorator(myFunc)
    // This is expected to print "Hello world"
    ms.someFunc(" world")
}

图片转代码服务由CSDN问答提供 功能建议

我是Golang的新手。 我正在尝试使用装饰器,该装饰器返回带有接收器的函数。 我该怎么做?

  type myStruct struct {
s string 
} 
 
func myFunc(s string){
 fmt.Println(s)
  } 
 
 //这里我想返回一个带有接收者的函数
func(* myStruct)myDecorator(fn func(string))(* myStruct)func(string){
 return(ms * myStruct)func(  s string){
 fn(ms + s)
} 
} 
 
func main(){
 ms:= myStruct {“ Hello”} 
 // //一些函数以接收者作为myStruct指针起作用 
 someFunc:= myDecorator(myFunc)
 //预期会打印“ Hello world” 
 ms.someFunc(“ world”)
} 
   
 
  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

相关推荐 更多相似问题