-
最近用go写程序时遇到一个问题——求任意类型切片的长度。
作为一个初学者,刚刚学了接口和切片,知道了每个类型都实现了一个空接口interface{},那么如果接口类型作为函数的参数,那它应
-
在go的微服务架构中
使用go-kit组件进行开发微服务
type Reg struct {
Host string
Port int
Client consul.Client
}
func MakeReg (host string , port int) (*Reg , error) {
reg := api.DefaultConfig()
reg.Address = host + ":" + strconv.It
-
首先撰写golang程序exportgo.go:
package main
import "C"
import "fmt"
//export PrintBye
func PrintBye() {
fmt.Println("From DLL: Bye!")
}
//export Sum
func Sum(a int, b int) int {
return a + b;
}
func main() {
// Need a main func
-
Golang try catch
虽然在使用Golang的时候发现没有try catch这种错误处理机制但是想一想golang作为一门优雅的语言,似乎也是情理之中。因为在java中 throws在函数签名中有一个关键字,旨在使异常流程
-
创建rpc接口,需要几个条件
方法的类型是可输出的方法的本身也是可输出的方法必须有两个参数,必须是输出类型或者是内建类型方法的第二个参数是指针类型方法返回的类型为error
rpc服务原
-
概要
在调用第三方 API 的时候, 基本都有访问限速的限制条件. 第三方的 API 有多个的时候, 就不太好控制访问速度, 常常会导致 HTTP 429(Too Many Requests) 然后就会有一段时间的禁止访问.
为了应对这
-
为什么要有枚举
我们以java语言为例子,在JDK1.5之前没有枚举类型,我们通常会使用int常量来表示枚举,一般使用如下:
public static final int COLOR_RED = 1;
public static final int COLOR_BLUE = 2;
public static fi
-
Go 交叉编译时,CGO_ENABLED 不能单独决定结果。本文按纯 Go 与依赖 C 编译器两种场景,整理 GOOS、GOARCH、CGO_ENABLED、CC 的配置关系,并给出产物格式和动态依赖的检查清单。
-
Go embed 会把目录连同前缀嵌入 embed.FS。本文用 fs.Sub 切出指定子目录,说明如何交给 fs.FS 消费者,以及遇到路径错误时怎样按根目录、斜杠和错误处理逐层排查。
-
讲清 tls.Config.Clone 的浅拷贝与并发边界,演示连接级配置派生、切片复制、证书池隔离和会话恢复注意事项。
-
通过批量行协议案例说明 bytes.Buffer.Grow 的容量估算:区分新增字节与目标容量,计算固定开销、字段长度和编码膨胀,并处理复用池与异常大输入。
-
Go 的 flate.NewReader 返回值同时实现 flate.Resetter,可在每段独立 DEFLATE 数据开始前调用 Reset 切换输入,复用内部已分配内存。本文给出完整循环,并说明 Close、字典、ByteReader 过读和并发使用边界。
-
用一个清晰判断区分 Context 元数据和业务参数:trace_id 等请求范围信息可以传播,userID、订单号和分页条件应回到显式函数签名,并用私有 key 与访问器收口类型断言。
-
Go 用 archive/zip 解压外部归档时,不能直接拼接成员名。本文说明如何处理 zip.ErrInsecurePath,用 filepath.Localize 和 filepath.IsLocal 拒绝绝对路径、.. 与跨平台分隔符,并用 os.Root 限制写入目录边界。
-
结合 EXPLAIN、慢查询、DBStats 和事务边界排查 Go 服务数据库瓶颈。