当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Golang ring.Link()用法及代码示例


Golang中的ring.Link()函数用于连接两个环r和s环。next()函数将环r的最后一个节点连接到环s的第一个节点,因此r.next()不能为空。否则,将引发错误。它的工作方式类似于循环链表。

用法:

func (r *Ring) Link(s *Ring) *Ring

它不返回任何东西。

范例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)) 
    }) 
  
}

输出:

0
0
0
0
1
1
1
1

范例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)) 
    }) 
}

输出:

GFG
GFG
COURSE
COURSE



相关用法


注:本文由纯净天空筛选整理自vipinyadav15799大神的英文原创作品 ring.Link() Function in Golang With Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。