随笔分类 - go
摘要:
本篇内容有点长,代码有点多。有兴趣的可以坚持看下去,并动手实践,没兴趣的可以划走。本文分两大块,一是搞清楚prometheus四种类型的指标Counter,Gauge,Histogram,Summary用golang语言如何构造这4种类型对应的指标,二是搞清楚修改指标值的场景和方式。 | 指标类型
阅读全文

摘要:
空接口既然可以存储任意类型的值,那么从空接口获取到的值是否可以直接使用?看下面栗子 package main import ( "fmt" ) var a interface{} var b interface{} func main() { a = 1024 b = 100 res := a +
阅读全文

摘要:
什么是反射 反射的机制是在运行时可以获取到其变量的类型和值,且可以在运行时对其变量类型和值进行检查,可以对其值进行修改。这种机制,其实在编写业务代码时是比较少用到的,那么在框架中,使用的反射的机制是比较常见,如web框架、Orm框架,实现通用性的目的。 go的反射 go的反射是由其标准库中的refl
阅读全文

摘要:
接口的基本剖析 package main import "fmt" type Test interface { show() } type myString string func (mys myString) show() { fmt.Println(mys) } func main() { va
阅读全文

摘要:
解决实际需求,案例分享。 请求Zabbix API,通过itemid获取到AppName(应用集名称) package main import ( "encoding/json" "fmt" "io/ioutil" "log" "net/http" "strings" ) func PostRequ
阅读全文

摘要:
结构体的基本定义和使用 package main import ( "fmt" ) //定义结构体类型User type User struct { username string "用户名" password string "密码" mail string "邮箱" } func main() {
阅读全文

摘要:
defer 使用defer注册的匿名函数(延迟调用)还可以给它传参,不过是值拷贝 package main import "fmt" func work() int { num := 10 defer func(i int) { i += 20 println("defer内的结果:", i) }(
阅读全文

摘要:
1. 用type关键字可以定义函数类型,函数类型变量可以作为函数的参数或返回值。 package main import "fmt" func add(a, b int) int { return a + b } func sub(a, b int) int { return a - b } typ
阅读全文
