我有一个接受函数作为参数的函数:func send(n int, c func(x int) int) int {    return c(n)}我有一个结构,上面定义了一个方法type data struct {    value int}func (t *data) set(x int) {    t.value = x}我想创建一个结构实例,并将set绑定到该实例的send方法作为第二个参数传递给函数,以value从send.这可能吗?https://play.golang.org/p/bv1JevQBcq
                    
                    
                1 回答
                            慕妹3146593
                            
                                
                            
                        
                        
                                                
                    TA贡献1820条经验 获得超9个赞
您可以使用方法值。这是类似于您的示例的内容:
package main
import "fmt"
func send(n int, c func(x int)) {
c(n)
}
type data struct {
value int
}
func (t *data) set(x int) {
t.value = x
}
func main() {
d := data{1}
fmt.Println(d)
send(2, d.set)
fmt.Println(d)
}
我无法使用问题中的类型,因为要发送的函数参数返回一个值而该方法没有。如果确实需要使用问题中的类型,请使用匿名函数使方法适应函数参数类型:
send(2, func(v int) int { d.set(v); return 0 })
- 1 回答
 - 0 关注
 - 205 浏览
 
添加回答
举报
0/150
	提交
		取消
	