登录
首页 >  Golang >  Go教程

golang 函数返回chan类型的操作

来源:脚本之家

时间:2023-01-26 09:26:20 453浏览 收藏

对于一个Golang开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《golang 函数返回chan类型的操作》,主要介绍了chan,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

在阅读kafka的golang 客户端代码sarama-cluster时,遇到了如下一段代码:

// Messages returns the read channel for the messages that are returned by
// the broker.
//
// This channel will only return if Config.Group.Mode option is set to
// ConsumerModeMultiplex (default).
func (c *Consumer) Messages() 

对于代码中的

经查阅资料,得知上面返回的是一个read-only类型的channel,即只读的管道。

验证:

package main
import (
    "fmt"
)
type C struct {
    Name string
}
type D struct {
    Id chan C
}
func (d *D)A() chan C {
    return d.Id
}
func main() {
    c := C{
        Name: "test",
    }
    ch := make(chan C, 10)
    ch 

创建func A() chan C {}, 在调用A()后,返回值r为channel, 其仍可以写入对象c,输出结果为:

{test}{test}
Process finished with exit code 0
package main
import (
    "fmt"
)
type C struct {
    Name string
}
type D struct {
    Id chan C
}
func (d *D)A() 

创建func A()

# command-line-arguments
.\test2.go:29:7: invalid operation: r 

同理, 如果返回类型为 chan

如何声明和初始化单向channel

var ch1 chan


ch3 := make(chan

补充:golang chan

开始时看到这个实在没明白怎么回事

测试了下才知道原来

chan

以上为个人经验,希望能给大家一个参考,也希望大家多多支持golang学习网。如有错误或未考虑完全的地方,望不吝赐教。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:脚本之家 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>