ring.Link() Function in Golang With Examples
ring.Link() function in Golang is used to connect two ring r and ring s ring.next() function connect last node of ring r to first node of ring s .so that for r.next() must not be empty. Otherwise, it will throw an error. It works like a circular linked list.
Syntax:
func (r *Ring) Link(s *Ring) *Ring
It does not return anything.
Example 1:
// Golang program to illustrate // the ring.Link() function package main import ( "container/ring" "fmt" ) // Main function func main() { // Create two rings, a and b, of size 2 a := ring.New(4) b := ring.New(4) // Get the length of the ring m := a.Len() n := b.Len() // Initialize a with 0s for j := 0; j < m; j++ { a.Value = 0 a = a.Next() } // Initialize b with 1s for i := 0; i < n; i++ { b.Value = 1 b = b.Next() } // Link ring a and ring b ab := a.Link(b) ab.Do(func(p interface{}) { fmt.Println(p.( int )) }) } |
Output:
0 0 0 0 1 1 1 1
Example 2:
// Golang program to illustrate // the ring.Link() function package main import ( "container/ring" "fmt" ) // Main function func main() { // Create two rings, r and s, of size 2 r := ring.New(2) s := ring.New(2) // Get the length of the ring lr := r.Len() ls := s.Len() // Initialize r with "GFG" for i := 0; i < lr; i++ { r.Value = "GFG" r = r.Next() } // Initialize s with "COURSE" for j := 0; j < ls; j++ { s.Value = "COURSE" s = s.Next() } // Link ring r and ring s rs := r.Link(s) // Iterate through the combined // ring and print its contents rs.Do(func(p interface{}) { fmt.Println(p.(string)) }) } |
Output:
GFG GFG COURSE COURSE
Contact Us