Jacobc' Blog

纵有疾风起,人生不言弃

Golang 按大小 or 时间切割日志

zap 日志库,通过 lumberjack 按文件大小分割,通过 go-file-rotatelogs 按日期分割

Go 程序的性能优化及 pprof 的使用

Go pprof 简单使用

Cobra - 一个 Golang 命令行项目生成工具

Cobra 简要教程

Golang Interface 解析

Interface 解析 原文链接 先看一段代码: func Foo(x interface{}) { if x == nil { fmt.Println("empty interface") return } fmt.Println("non-empty interface") } func main() { var x *int = nil Foo(x) } 上面的例子的输出结果如下 $ go run test_interface.go non-empty interface 可能你会感觉奇怪,为什么会是 non-empty inerface,那么继续往下看,你就会知道答案。

Golang slice 切片原理

Golang slice 切片原理解析

Jobrunner 源码解析

Jobrunner 定时任务库源码解析

Golang I/O 包的妙用

Golang I/O 包的妙用 golang标准库对io的抽象非常精巧,各个组件可以随意组合,可以作为接口设计的典范。这篇文章结合一个实际的例子来和大家分享一下。

跨域资源共享 CORS 详解

跨域资源共享 CORS 详解 CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。 它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。 本文详细介绍CORS的内部机制。

Go注意点总结

Go >注意点< 总结 1. 布尔类型 ​ 布尔类型 不能 接受其他类型的赋值,不支持 自动或者强制的类型转换 var b bool b = 1 // 编译错误 b = bool(1) // 编译错误 2. int与int32 ​ **注意:**int和int32在Go语言里被认为是两种不同的类型,编译器也不会帮你自动做类型转换

Golang 中不存在引用传参

Golang 中不存在引用传参 ​原文链接 翻译:Jsharkc 什么是引用变量 ? 在 C++ 语言中,你可以为已存在的变量声明一个别名,这就是引用变量: #include <stdio.h> int main() { int a = 10; int &b = a; int &c = b; printf("%p %p %p\n", &a, &b, &c); // 0x7ffe114f0b14 0x7ffe114f0b14 0x7ffe114f0b14 return 0; } 可以看到,a、b、c 三个变量的地址是相同的,也就是说它们是同一个内存地址的变量,只不过有三个别名。就好比你有一个大名,一个小名,不管别人叫大名还是小名叫的都是你,如果改变 a 变量,b、c 变量也会跟着变。当你声明一个引用变量在不同的函数作用域中这是非常有用的。