管道(channel) 全局变量加锁 解决程序同步问题 package main import ( "fmt" "sync" "time" ) //需求:现在要计算1-200的各个数的阶乘,并且把各个数的阶乘放入到map中。 //最后显示出...
go
golang 切片去重
方法一 双重for循环,设置标识,增加到新的切片中,达到去重效果: func main() { var arr = []string{"hello", "hi", "world", "hi", "china", "hello", "hi"} fmt.Println(RemoveRepeatedElement(...
golang实现无限级分类
这是一个简单的递归查找无限分类的示例。本方法一次查询出所有的分类适合无限分类有限,如果无限分类超级多,查找的分类对应的子分类较少,建议用go语言实现无限极分类 这里的ID为正常的商品ID。 PID如果是最大...
golang 排序任意数据结构
使用 sort.Sort() 或者 sort.Stable() 函数可完成对任意类型元素的排序。 一个内置的排序算法需要知道三个东西:序列的长度,表示两个元素比较的结果,一种交换两个元素的方式;这就是 sort.Interface 的三个...
Golang 结构体切片排序
使用 sort.SliceStable(),在排序切片时会保留相等元素的原始顺序。 按照年龄升序排序的示例 func main() { slStdnt := []struct { Name string Age int Height int }{ {"Alice", 23,...
Golang 通过字符串调用方法
package main import ( "fmt" "reflect" ) type Student struct { } func (s *Student) Listen() { fmt.Println("listen") } func main() { student := Student{} value := reflect.V...
golang defer执行顺序
defer函数的执行顺序是先进后出,和栈一样,return 最后执行,当出现panic的时候,就会按照先进后出的顺序执行defer函数,最后才执行panic,return 不再执行。合理利用defer函数可以避免程序异常退出,保证程序的...
Go语言中Kill子进程的正确姿势
* 问题场景 我们在编写部署系统的时候,通常需要在机器上部署一个agent,用来执行部署脚本,为了防止部署脚本写的有问题,长时间hang住,我们通常会为脚本的执行设置一个超时时间,到了时间之后就kill掉该脚本的...
golang 实现每隔几分钟执行一个函数
1、使用定时器 2、使用这种方式 go function() func function() { // TODO 具体逻辑 // 每5分钟执行一次 time.AfterFunc(5*time.Minute, function) } 补充:Golang:每天零点定时执...
GO的lua虚拟机 gopher-lua
go 中使用 lua package main import ( lua "github.com/yuin/gopher-lua" ) func main() { l := lua.NewState() defer l.Close() if err := l.DoString(`print("Hello World")`); err != nil...