gpt4 book ai didi

go - 正确地将结构传递给 golang 中的函数

转载 作者:IT王子 更新时间:2023-10-29 01:43:12 26 4
gpt4 key购买 nike

我有一个 golang 结构:

type Connection struct {
Write chan []byte
Quit chan bool
}

我正在创建它:

newConnection := &Connection{make(chan []byte), make(chan bool)}

如何正确创建带有连接参数的函数类型和该类型的函数?

我的意思是我想做这样的事情:

type Handler func(string, Connection)

handler(line, newConnection)

handler 是:

func handler(input string, conn tcp.Connection) {}

cannot use newConnection (type *Connection) as type Connection in argument to handler

谢谢。

最佳答案

问题是 Handler 的类型是 Connection 并且您传递的值是 *Connection 类型,即 Pointer-连接。

将处理程序定义更改为 *Connection 类型

这是一个工作示例:

package main

import "fmt"

type Connection struct {
Write chan []byte
Quit chan bool
}

type Handler func(string, *Connection)

func main() {
var myHandler Handler

myHandler = func(name string, conn *Connection) {
fmt.Println("Connected!")
}

newConnection := &Connection{make(chan []byte), make(chan bool)}

myHandler("input", newConnection)

}

https://play.golang.org/p/8H2FocX5U9

关于go - 正确地将结构传递给 golang 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24477790/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com