该问题来源于自己在读fabric源码时,看到的一个测试代码,在一个函数中启用协程,然后该函数退出了,由于平常没有这样处理过,以及受原有c++函数域的影响,认为函数退出,子协程应该也退出了呀。
这其实是自己对go协程的理解不到位引起的,go的
go 在做类型转换时,报错:cannot convert m (type interface {}) to type Msg: need type assertion原因:
go 的在 interface 类型转换的时候, 不是使用类型的转
工作中遇到了批量修改文件名的情况,为此写了个小程序,以供日后方便查看。
用法:renamedirfiles.exe -d
经常看到有人会问如何等待主协程中创建的协程执行完毕之后再结束主协程,例如如下代码:package main
import (
go提供了sync包和channel来解决协程同步和通讯。
方式1:
sync.WaitGroup是等待一组协程结束,sync.WaitGroup只有3个方法,Add()添加一个计数,Done()减去一个计数,Wait()阻塞直到所有任务完
GO类型转换及与C的类型转换
类型转换
语法dst := float32(src)
示例var num int = 520
f32 := float32(num)
i64 := int64(num)
注意:加入val是一个指针,int32(
简介
Go的标准包Container中包含了常用的容器类型,包括conatiner/list,container/heap,container/ring,本篇讲解container/ring的使用。
ring包
ring包提供了环形链表的操
GOPATH 和 GOROOT
不同于其他语言,go中没有项目的说法,只有包, 其中有两个重要的路径,GOROOT 和 GOPATH GOROOT是安装目录,GOPATH是我们的工作空间, 用来存放包的目录GOPATH可以设置多个,其中,第