一五零、Go常用utils

生成一个随机数

package main

import (
    "fmt"
    "math/rand"
    "time"
)

func main() {
    
    
    // 初始化随机数生成器
    rand.Seed(time.Now().UnixNano())

    // 生成一个随机整数
    randomInt := rand.Intn(100)

    // 输出随机整数
    fmt.Println(randomInt)
}

关闭channel

一个channel如果已经被关闭,再去关闭的话会 panic,此时就可以应用 sync.Once 来帮忙。

type T int

type MyChannel struct {
    
    
   c    chan T
   once sync.Once
}

func (m *MyChannel) SafeClose() {
    
    
   // 保证只关闭一次channel
   m.once.Do(func() {
    
    
      close(m.c)
   })
}

猜你喜欢

转载自blog.csdn.net/zm06201118/article/details/130491015