Menu Close

Go – Do() function of ring package in go

Do() function of ring package is used to call function f on each element of the ring in forward order in go.

Do() function prototype of ring package:

func (r *Ring) Do(f func(any))

Here, type any = interface{}

Return type in Do() function of ring package:

Do() does not returns anything. It performs operations of ring elements in function defined by user.

Example of Do() function in ring package:

Code 1:

package main

import (
	"container/ring"
	"fmt"
)

func main() {
	// Create a new ring of size 5
	r := ring.New(5)

	// Get the length of the ring
	n := r.Len()

	// Initialize the ring with some integer values
	for i := 0; i < n; i++ {
		r.Value = i
		r = r.Next()
	}

	// Iterate through the ring and print its contents
	r.Do(func(p any) {
		fmt.Println(p.(int))
	})

}

Output:

0
1
2
3
4

Code 2:

package main

import (
        "container/ring"
        "fmt"
)

// Square numbers of ring elements
func square_numbers(n any) {

  ele := n.(int)

  fmt.Println(ele * ele)
}

func main() {
        // Create a new ring of size 6
        r := ring.New(6)

        // Get the length of the ring
        n := r.Len()

        // Initialize the ring with some integer values
        for i := 0; i < n; i++ {
                r.Value = i
                r = r.Next()
        }

        // Iterate through the ring elements
        fmt.Println("Ring elements are: ")
        r.Do(square_numbers)
}

Output:

Ring elements are:
0
1
4
9
16
25

To learn more about golang, Please refer given below link:

References:

https://golang.org/doc/

Posted in golang, packages, ring

Leave a Reply

Your email address will not be published. Required fields are marked *