Go Programming Articles

Page 84 of 86

Decorator function pattern in Golang

Kiran Kumar Panigrahi
Kiran Kumar Panigrahi
Updated on 01-Nov-2021 1K+ Views

Decorator function pattern is a pattern that is mainly found in Python and JavaScript, but we can also use it in Golang.It is a pattern in which we can add our own functionality over a current function by wrapping it. Since functions in Golang are considered firstclass objects, which in turn means that we can pass them as arguments as we would in the case of a variable.Example 1Let's start with a very simple example to understand the basic case of passing a function as an argument to an already existing function.Consider the code shown below.package main import ( ...

Read More

How to get the current username and directory in Golang?

Kiran Kumar Panigrahi
Kiran Kumar Panigrahi
Updated on 01-Nov-2021 8K+ Views

Sometimes there are cases where we want to know which user is executing the current program and in which directory and we can get all these details with the help of the user package that is present inside the os package of Go's standard library.In this article, we will explore three such cases, where first, we will log out the username who is executing the current process and then we will log out the name along with the id and finally, we will log out from the directory in which the current program is located.Getting the UsernameTo get the username, ...

Read More

How to get the size of an array or a slice in Golang?

Kiran Kumar Panigrahi
Kiran Kumar Panigrahi
Updated on 01-Nov-2021 1K+ Views

In case we want to get the size of an array or a slice, we can make use of the built-in len() function that Go provides us with.Example 1Let's first explore how to use the len function with an array. Consider the code shown below.package main import (    "fmt" ) func main() {    fmt.Println("Inside the main function")    arr := [3]int{1, 2, 3}    fmt.Println("The length of the array is:", len(arr)) }In the above code, we are using the len function on the array defined as arr.OutputIf we run the command go run main.go ...

Read More

How to close a channel in Golang?

Kiran Kumar Panigrahi
Kiran Kumar Panigrahi
Updated on 01-Nov-2021 3K+ Views

We can close a channel in Golang with the help of the close() function. Once a channel is closed, we can't send data to it, though we can still read data from it. A closed channel denotes a case where we want to show that the work has been done on this channel, and there's no need for it to be open.We open the channel the moment we declare one using the make keyword.ch := make(chan int)Example 1Let's consider a very simple example, in which we will create a buffered channel and then pass data to it and then close ...

Read More

How to check if a string is a valid URL in Golang?

Kiran Kumar Panigrahi
Kiran Kumar Panigrahi
Updated on 01-Nov-2021 5K+ Views

There are cases where we would want to know if the URL that we got from an http request in the form of a string is even valid or not. In such cases, one can use two functions that the net/url package of Go's standard library provides.Example 1The first basic case is to check if the URL is well structured and a valid one, and for that, we can use the ParseRequestURI() function of the URL package.Consider the code shown below.package main import (    "fmt"    "net/url" ) func main() {    u, err := url.ParseRequestURI("http://golangcode.com")   ...

Read More

What are WaitGroups in Golang?

Kiran Kumar Panigrahi
Kiran Kumar Panigrahi
Updated on 01-Nov-2021 276 Views

There may be instances in Golang where the execution of different goroutines may cause unexpected behaviour. In such cases, we want to make sure that certain goroutines work in a predefined manner and the program waits for all goroutines that are launched from the main function to wait. To do that, we use of WaitGroups.WaitGroups allow us to tackle the problem mentioned above as they block the code until any goroutines within the WaitGroup has been successfully executed.A WaitGroup has three exported methods that we make use of. These are −Add(int) – Increases the counter.Wait() – Blocks the execution until ...

Read More

How to use Mutex in Golang?

Kiran Kumar Panigrahi
Kiran Kumar Panigrahi
Updated on 01-Nov-2021 494 Views

In order to understand why mutex in Go play a significant role to write better and accurate concurrent programs, we must first be aware of the concept called Race Conditions. Let's first understand what Race conditions are and how we can write a concurrent program that features a race condition and how we can then introduce mutex in that program to make it accurate.Race ConditionA race condition is a condition in which multiple goroutines are trying to access and modify the same resource. It could be the case that one goroutines is trying to increase a value of a particular ...

Read More

How to use Tickers in Golang?

Kiran Kumar Panigrahi
Kiran Kumar Panigrahi
Updated on 01-Nov-2021 8K+ Views

There are often cases where we would want to perform a particular task after a specific interval of time repeatedly. In Golang, we achieve this with the help of tickers.We can use them with goroutines as well so that we can run these tasks in the background of our application without breaking the flow of the application.The function that we use in tickers is the NewTicker() function which takes time as an argument and we can supply seconds and even milliseconds in it.Example 1The following example demonstrates how we can use a ticker in Golang. Consider the code shown below.package ...

Read More

How to handle signals in Golang?

Kiran Kumar Panigrahi
Kiran Kumar Panigrahi
Updated on 01-Nov-2021 2K+ Views

Before discussing signals and how to handle them, let's talk about a common scenario of creating a signal. A signal can be passed from the terminal, by either terminating the program with the help of CTRL+C or we can by default call the Exit() function that the os package provides us with.Example 1Let's consider an example where we will call the os.Exit() function just after a function declaration that has been deferred.Consider the code shown below.package main import (    "fmt"    "os"    "time" ) func main() {    defer func() {       fmt.Println("Inside the ...

Read More

How to use Timeouts in Golang

Kiran Kumar Panigrahi
Kiran Kumar Panigrahi
Updated on 01-Nov-2021 3K+ Views

Timeouts play an important role when we don't want to wait for the output for some goroutines that are taking more time than what they should take. It should be noted that Go directly doesn't support timeouts, but we can implement them without any difficulty.Let's suppose we have a case where we want to receive some value from a channel ch, but we don't want to wait for more than 3 seconds for the value to arrive. If we get the output after the required 3 seconds, then we want to discard it and print a different message instead of waiting for ...

Read More
Showing 831–840 of 852 articles
Advertisements