原文链接:https://blog.thinkeridea.com/… Go 内置很多种数值类型,往往初学者不知道编写程序如何选择,使用哪种数值类型更有优势。 内置的数值类型有:uint8、 uint16、 …
分类:go教程
14 Go语言——接口interface详解
Go语言——接口interface详解 1、Duck Typing 概念 go语言中的duck typing并不是真正的duck typing,但是他是类似的概念,go语言接口的实现就可以看做为duck typing。举…
go 本周周一的获取
time.Weekday类型可以做运算,强制转int,会得到偏差数。默认是 Sunday 开始到 Saturday 算 0,1,2,3,4,5,6 所以只有Monday减去Sunday的时候是正数,特殊处理下就可以了。 …
Go 值传递与引用传递
问题引入 什么时候选择 T 作为参数类型,什么时候选择 *T 作为参数类型? [ ] T 是传递的指针还是值?选择 [ ] T 还是 [ ] *T ? 哪些类型复制和传递的时候会创建副本? 什么情况下会发生副本创建? T…
Golang 函数执行时间统计装饰器的一个实现
背景 最近在搭一个新项目的架子,在生产环境中,为了能实时的监控程序的运行状态,少不了逻辑执行时间长度的统计。时间统计这个功能实现的期望有下面几点: 实现细节要剥离:时间统计实现的细节不期望在显式的写在主逻辑中。因为主逻辑…
Go mod 使用
go modules 是 golang 1.11 新加的特性。现在1.12 已经发布了,是时候用起来了。Modules官方定义为: 模块是相关Go包的集合。modules是源代码交换和版本控制的单元。 go命令直接支持使…
数据一致性(二)
我们流连于事物的表象,满足浅尝辄止的片刻欢愉,却几乎从不久留。我们在人生的道路上争先恐后,却吝于用片刻思考目标和方向。 概述 至今没有接触过MySQL多主的情况,即存在多个MySQL实例同时负责读写请求(抛弃只读库)。思…
Go Chanel 使用与原理 三
上篇已经记录到发送数据到 chanel 的三种情况的代码逻辑,接下来是从 chanel 接收数据的逻辑。 chanrecv 方法 和 chansend 方法十分类似 如果 hchan 为空 if c == nil { i…
Go Chanel 使用与原理 二
有了上篇的基本了解,可以翻阅源码了 涉及的数据结构 // Go/src/runtime/chan.go type hchan struct { qcount uint // total data in the queue…
程序员修仙之路--突破内存限制的高性能排序
菜菜的涨工资申请还在待审批中…. 作为一个技术人员,技术的问题还是要解决。经过线上日志的分析,日志采用小时机制,一个小时一个日志文件,同一个小时的日志文件有多个,也就是说同一时间内的日志有可能分散在多个日志文…
go - 使用 govendor 管理项目依赖
govendor 是 go 的一个比较好用包版本管理工具。主要用来保证 go 项目在协同开发或发版部署时,保证部署安装的依赖包版本对当前项目是稳定可用的。 为什么要使用包版本管理工具 java 的 maven,php 的…
Go Channel 面试题解析
有一道这样的面试题目: 写代码实现两个 goroutine,其中一个产生随机数并写入到 go channel 中,另外一个从 channel 中读取数字并打印到标准输出。最终输出五个随机数。 凭直觉开始撸了以下代码: f…