golang全局变量

  • Post author:
  • Post category:golang

任何编程语言中都有全局变量和局部变量。 在golang中,全局变量的生命周期属于整个包,这个和C不同,因为C语言没有包的概念。 在golang的main包中,main包定义的全局变量无法被其他包引用。 如果想使用全局变量,建议在其他包中定义并进行引用。 在golang中,局部变量的生命周期属于花括号之内,这和C语言一致。 还有,注意全局变量声明了一个变量之后,如果再声明一个同名局部变量,该同名局部…

继续阅读 golang全局变量

golang中defer和recover的使用

  • Post author:
  • Post category:golang

defer 内建函数,延迟调用,所在函数退出时调用,一个方法里若有多个defer语句,则先声明的后被调用,一般与recover()函数一起配合使用,recover()一般用于捕捉panic抛出的异常,比如:panic(11), 捕捉到的就是11 func main() { defer func() { if v := recover();v == 11 { fmt.Printf("v: %#v\n…

继续阅读 golang中defer和recover的使用

golang性能分析,pprof的使用,graphviz,火焰图

  • Post author:
  • Post category:golang

golang中的pprof的使用,graphviz 一、关于pprof包 go中有 pprof 包来做代码的性能监控,包括 cpu profile, mem profile, block profile ,在两个地方有包: net/http/pprof runtime/pprof 其实 net/http/pprof 中只是使用 runtime/pprof 包来进行封装了一下,并在http端口上暴露…

继续阅读 golang性能分析,pprof的使用,graphviz,火焰图

golang调度学习-初始化,创建goroutine,系统线程m

  • Post author:
  • Post category:golang

初始化 调度器的初始化从 schedinit()函数开始,将会设置m最大个数(maxmcount)及p最大个数(GOMAXPROCS)等 func schedinit() { sched.maxmcount = 10000 // 设置m的最大值为10000 mcommoninit(_g_.m) //初始化当前m // 确认P的个数 // 默认等于cpu个数,可以通过GOMAXPROCS环境变量更改…

继续阅读 golang调度学习-初始化,创建goroutine,系统线程m

Golang Web 开发 (二)

  • Post author:
  • Post category:golang

8、中间件(基础) 这个例子将展示如何在Go中创建基本的日志中间件。 中间件简单地接受一个 http.HandlerFunc 作为它的参数之一,包装它并返回一个新的 http.HandlerFunc 给服务器调用。 // basic-middleware.go package main import ( "fmt" "log" "net/http" ) func logging(f http.Ha…

继续阅读 Golang Web 开发 (二)

golang之pprof

  • Post author:
  • Post category:golang

通过交互式终端使用: go tool pprof -seconds 30 http://127.0.0.1:9003/debug/pprof/profile $ go tool pprof -seconds 30 http://127.0.0.1:9003/debug/pprof/profile Fetching profile over HTTP from http://127.0.0.1:90…

继续阅读 golang之pprof

golang errgroup

  • Post author:
  • Post category:golang

例子,如果有一个错误,等待所有goroutine返回,返回第一个错误。 package main import ( "context" "errors" "golang.org/x/sync/errgroup" "log" "time" ) func main() { ctx, cancel := context.WithTimeout(context.Background(), time.Dur…

继续阅读 golang errgroup

Go语言学习笔记—golang接口与实现面向对象特性

  • Post author:
  • Post category:golang

视频来源:B站《golang入门到项目实战 [2022最新Go语言教程,没有废话,纯干货!]》 文章为自己整理的学习笔记,侵权即删,谢谢支持! 文章目录 一 golang接口简介 1.1 语法 1.2 实例演示 1.3 注意事项 二 golang接口值类型接收者和指针类型接收者 三 golang接口和类型的关系 3.1 一个类型实现多个接口 3.2 多个类型实现同一个接口(多态特性的实现) 四 g…

继续阅读 Go语言学习笔记—golang接口与实现面向对象特性

Golang Python通过gRPC跨语言调用DEMO

  • Post author:
  • Post category:golang

1、首先Python端和Golang端都要安装gRPC包和相应的源码生成工具 python(适用于3.5以上版本): python -m pip install grpcio python -m pip install grpcio-tools golang: go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28 go inst…

继续阅读 Golang Python通过gRPC跨语言调用DEMO

golang 安装etcd clientv3 报错

  • Post author:
  • Post category:golang

报错信息 D:\go_env\bin\go.exe build -o C:\Users\jhinno\AppData\Local\Temp\___go_build_test_etcd_go.exe -gcflags "all=-N -l" D:/go_code/test_data/test_etcd.go #gosetup # github.com/coreos/etcd/clientv3/bal…

继续阅读 golang 安装etcd clientv3 报错