Golang program to convert bidirectional channel into the unidirectional channel

Here, we are going to learn how to convert bidirectional channel into the unidirectional channel in Golang (Go Language)?
Submitted by Nidhi, on April 04, 2021

Problem Solution:

In this program, we will create a bidirectional channel and convert it into unidirectional channel.

Program/Source Code:

The source code to convert the bidirectional channel into the unidirectional channel is given below. The given program is compiled and executed successfully.

// Golang program to convert the bidirectional channel
// into the unidirectional channel

package main

import "fmt"

func ConvertToUnidirection(uniCh chan<- string) {
	uniCh <- "Hello World"

	// Inside the ConvertToUnidirection() function
	// channel is unidirectional.
	// Below statement will generate error
	// fmt.Println(<-uniCh)
}

func main() {
	// Create a bidirection channel
	msg := make(chan string)

	go ConvertToUnidirection(msg)

	// Outside the ConvertToUnidirection() function
	// channel is bidirectional.
	fmt.Println(<-msg)
}

Output:

Hello World

Explanation:

In the above program, we declare the package main. The main package is used to tell the Go language compiler that the package must be compiled and produced the executable file. Here, we imported the fmt package to formatting related functions.

In the main() function, we created a bidirectional channel, and then we created a user-defined function ConvertToUnidirection() that converts a bidirectional channel into a unidirectional channel.

Golang Channels Programs »






Comments and Discussions




Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing
» Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates

© https://www.includehelp.com some rights reserved.