Go 唯讀 只寫channel

2022-04-04 00:29:35 字數 757 閱讀 4960

go中channel可以是唯讀、只寫、同時可讀寫的。

//定義唯讀的channel

read_only := make (<-chan int)

//定義只寫的channel

write_only := make (chan<- int)

//可同時讀寫

read_write := make (chan int)

定義唯讀和只寫的channel意義不大,一般用於在引數傳遞中,見**:

package main

import (

"fmt""

time")

func main()

//只能向chan裡寫資料

func send(c chan<- int) }

//只能取channel中的資料

func recv(c <-chan int

) }

如果將上面send方法和recv方法中的引數對調:

func send(c <-chanint) {

func recv(c chan<- int) {

編譯就會報錯:

./channel.go:18: invalid operation: c <- i (send to receive-only type <-chan int)

./channel.go:24: invalid operation: range c (receive from send-only type chan<- int)

Go 唯讀 只寫channel

go中channel可以是唯讀 只寫 同時可讀寫的。定義唯讀的channel read only make 定義只寫的channel write only make chan 可同時讀寫 read write make chan int 定義唯讀和只寫的channel意義不大,一般用於在引數傳遞中,...

Go 唯讀 只寫channel

go中channel可以是唯讀 只寫 同時可讀寫的。定義唯讀的channel read only make 定義只寫的channel write only make chan 可同時讀寫 read write make chan int 定義唯讀和只寫的channel意義不大,一般用於在引數傳遞中,...

Go 唯讀 只寫channel

go中channel可以是唯讀 只寫 同時可讀寫的。定義唯讀的channel read only make chan int 定義只寫的channel write only make chan int 可同時讀寫 read write make chan int 定義唯讀和只寫的channel意義不...