概述
在Golang中也可以创建一个通道数据类型的片断或数组。事实上,在Go中可以创建任何数据类型的片断或数组。本教程包含了在Golang中创建通道分片或数组的简单例子。
这里要补充的是,在Golang中数组是固定大小的,而片断可以有可变的大小。
更多的细节在这里
数组- https://golangbyexample.com/understanding-array-golang-complete-guide/
切片 - https://golangbyexample.com/slice-in-golang/
通道的片断
package main
import "fmt"
func main() {
channel1 := make(chan int)
channel2 := make(chan int)
channel3 := make(chan int)
//First Way
var channels_first []chan int
channels_first = append(channels_first, channel1)
channels_first = append(channels_first, channel2)
channels_first = append(channels_first, channel3)
fmt.Println("\nOutput for First slice of channels")
for _, c := range channels_first {
fmt.Println(c)
}
//Second Way
channels_second := make([]chan int, 3)
channels_second[0] = channel1
channels_second[1] = channel2
channels_second[2] = channel3
fmt.Println("\nOutput for Second slice of channels")
for _, c := range channels_second {
fmt.Println(c)
}
}
输出
Output for First slice of channels
0xc000118000
0xc000118060
0xc0001180c0
Output for Second slice of channels
0xc000118000
0xc000118060
0xc0001180c0
在你的机器上的输出将是不同的,因为它是一个地址。
在上面的程序中,我们创建了三个数据类型为int的通道。
channel1 := make(chan int)
channel2 := make(chan int)
channel3 := make(chan int)
那么我们有两种方法来创建一个通道片。第一种方法是
var channels_first []chan int
channels_first = append(channels_first, channel1)
channels_first = append(channels_first, channel2)
channels_first = append(channels_first, channel3)
第二种方法,我们使用make命令来创建一个通道片。
channels_second := make([]chan int, 3)
channels_second[0] = channel1
channels_second[1] = channel2
channels_second[2] = channel3
无论哪种方法都可以。这就是我们如何创建一个通道片的方法
频道的数组
package main
import "fmt"
func main() {
channel1 := make(chan int)
channel2 := make(chan int)
channel3 := make(chan int)
var channels_first [3]chan int
channels_first[0] = channel1
channels_first[1] = channel2
channels_first[2] = channel3
fmt.Println("Output for First Array of channels")
for _, c := range channels_first {
fmt.Println(c)
}
channel_second := [3]chan int{
channel1,
channel2,
channel3,
}
fmt.Println("\nOutput for Second Array of channels")
for _, c := range channel_second {
fmt.Println(c)
}
}
输出
Output for First Array of channels
0xc00008c060
0xc00008c0c0
0xc00008c120
Output for Second Array of channels
0xc00008c060
0xc00008c0c0
0xc00008c120
在你的机器上的输出将是不同的,因为它是一个地址。
在上面的程序中,我们创建了三个数据类型为int的通道。
channel1 := make(chan int)
channel2 := make(chan int)
channel3 := make(chan int)
那么我们有两种方法来创建一个数组。第一种方法是
var channels_first [3]chan int
channels_first[0] = channel1
channels_first[1] = channel2
channels_first[2] = channel3
第二种方法,我们直接用创建的通道来初始化数组
channel_second := [3]chan int{
channel1,
channel2,
channel3,
}
请看我们的Golang高级教程。这个系列的教程是精心设计的,我们试图用例子来涵盖所有的概念。本教程是为那些希望获得专业知识和对Golang有扎实了解的人准备的 - Golang高级教程
如果你有兴趣了解如何在Golang中实现所有设计模式。如果是的话,那么这篇文章就是为你准备的--所有设计模式 Golang
The postSlice or Array of Channels in Go (Golang)appeared first onWelcome To Golang By Example.