Golang中的struct有点跟Java中的类相似. struct 管他什么特性不特性的,先来段代码.看看跟学过的其他语言有啥区别. package main import ( "fmt" ) type Person …
标签:go
golang整洁之道(一)
设计工整的go项目配置文件 问题背景 项目经常会涉及到配置文件,而配置文件往往包含多方的配置信息,可能同时涉及到MySQL,kafka,hive,hdfs等等。 不加思索的yaml配置文件 最快,最直接的方案自然是如下示…
Go 面试每天一篇(第 1 天)
下面这段代码输出的内容 package main import ( "fmt" ) func main() { defer_call() } func defer_call() { defer func() { fmt.…
Go 面试每天一篇(第 1 天)
下面这段代码输出的内容 package main import ( "fmt" ) func main() { defer_call() } func defer_call() { defer func() { fmt.…
一次golang web的内存分析
一次golang web的内存分析 由于近期项目运行时,发现内存有一个规律性的增长。 首先排查的是localcache的问题, 为了减少和redis的交互,对于一些热数据,同时更新频率也低,缓存周期内的数据延迟可以接受,…
如何用 Go 实现热重启
热重启 热重启(Zero Downtime),指新老进程无缝切换,在替换过程中可保持对 client 的服务。 原理 父进程监听重启信号 在收到重启信号后,父进程调用 fork ,同时传递 socket 描述符给子进程 …
Go 切片的 append 操作总结
预备 切片是对其底层数组的某一段的引用。 切片有 len 和 cap 两个属性,代表切片的引用长度和切片的容量(从切片的引用起点位置到其底层数组最末端的长度。因为其底层数组的长度是固定的,这也就是意味着容量是指切片可引用…
Go 1.8 的 plugin 使用
Go 1.8 为我们提供了一个创建共享库的新工具,称为 Plugins!让我们来创建和使用一个插件。 目前的插件只能在 Linux 和 Darwin (1.8 正式版因为 Bug 已移除支持)上工作。 安装 1.8 be…
Go语言入门教程-介绍和安装
备注: 由于年前工作事情较多,我会在过年前完成翻译整理工作 这是go语言入门的第一篇教程 什么是Golang Go是谷歌创建的,开放源代码、编译型和静态类型的编程语言. Golang 的主要关注点在使开发高可用和可伸缩的…
Go 第二部分:分支语句、函数
这是 Go 系列的第二篇文章,主要介绍 if/else , switch 和函数的各种用法。 系列整理: Go 第一部分:变量、常量和枚举类型 如果对 Go 语言本身感兴趣,可以阅读我的这篇译文 Go语言的优点,缺点和令…
Using context cancellation in Go
原文地址: https://neojos.com/blog/2019/… 文章介绍最近工作中遇到的一个问题,其中50%以上的内容都是Go的源代码。剩下部分是自己的理解,如果有理解错误或探讨的地方,希望大家指正…
gRPC入门
时间飞逝 如一名携带信息的邮差 但那只不过是我们的比喻 人物是杜撰的 匆忙是假装的 携带的也不是人的讯息 为什么使用grpc 主要包括以下两点原因: protocl buffer一种高效的序列化结构。 支持http 2.…