golang/go语言泛型的使用

前言
  泛型 是什么? 其实这个问题对于学过 C++ 的同学来说不陌生就是模版嘛, 在运行时才确定类型嘛. 确实这两句话就基本能解析清楚, 但像一些只接触过 …

多图详解Go/Golang语言内存分配原理

Go语言内置运行时(就是runtime),抛弃了传统的内存分配方式,改为自主管理。这样可以自主地实现更好的内存使用模式,比如内存池、预分配等等。这样,不会每次内…

通过测试学Go:结构体,方法和接口

假设我们需要编程计算一个给定高和宽的长方形的周长。我们可以写一个函数如下:
Perimeter(width float64, height float64)
其…

标题都看不懂:舍弃表达式中可选的结果值对程序行为的影响

以下文章来源于Go 101 ,作者老貘
我们知道,Go中的某些表达式可以有一个可选的结果。这样的表达式包括:

数据通道数据发送操作
映射(map)元素索引操作…

在Kubernetes上如何基于自定义指标实现应用的自动缩放

以下文章来源于TonyBai ,作者白明的赞赏账户

如何在Kubernetes上实现应用缩放?
使用静态配置将应用程序部署到生产环境并不是最佳选择。
流量模式…

Go标准编译器优化:边界检查消除(bounds check elimination)

以下文章来源于Go 101 ,作者老貘
从Go SDK 1.7开始,Go标准编译器开始支持边界检查消除。此优化避免了很多不必要的边界检查,从而使得编译器编译出的…

12306抢票带来的启示:看我如何用Go实现百万QPS的秒杀系统

12306 抢票,极限并发带来的思考
每到节假日期间,一二线城市返乡、外出游玩的人们几乎都面临着一个问题:抢火车票!虽然现在大多数情况下都能订到票,但是放票瞬间…

为什么大神能够写出高性能代码?因为他们掌握了Go编译器所做的优化

以下文章来源于Go 101 ,作者老貘
下面将介绍Go标准编译器(截至Go SDK 1.12.x)所做的其它一些优化。
1. 多个字符串的衔接表达式在运行时只需…

两个Go语言编程小技巧

以下文章来源于Go 101 ,作者老貘
本文介绍两个Go编程中的小技巧。
技巧1:如何模拟一些其它语言中支持的for i in 0..N循环代码块
我们可以使用…

go 学习笔记之解读什么是defer延迟函数

以下文章来源于雪之梦技术驿站 ,作者雪之梦技术驿站
Go 语言中有个 defer 关键字,常用于实现延迟函数来保证关键代码的最终执行,常言道: "未雨…

Go标准编译器对字符串和字节切片之间的转换操作所做的一些优化

以下文章来源于Go 101 ,作者老貘
我们知道,在Go中,一个字符串其实是一个只读字节序列。在正常情况下,

从一个字符串转换为字节切片的过程中将把字符串中的…

Uber Go语言编码规范

以下文章来源于TonyBai ,作者白明的赞赏账户
Uber是世界领先的生活出行服务提供商,也是Go语言的早期adopter,根据Uber工程博客的内容,大致可…

字节切片(byte slice)相关的编译器漏洞和标准库设计失误

以下文章来源于Go 101 ,作者老貘
假如一个类型MyByte定义如下,如何将一个[]MyByte切片值和一个[]byte切片值互相转换为对方的类型?

pa…

通过测试学习Go语言:for 迭代

你可以在这里找到本章的所有代码[1]
在 Go 中 for 用来循环和迭代,Go 语言没有 while,do,until 这几个关键字,你只能使用 for。这…

Go值比较规则和其中的一些细节

以下文章来源于Go 101 ,作者老貘
在Go中,两个类型确定值是否可以比较取决于这两个值的类型是否相同或者其中的一个是否可以隐式转换为另一个的类型。另外一条规…

Go有GC就不需要掌握内存堆栈知识了吗?Go 堆栈的理解

在讲 Go 的堆栈之前,先温习一下堆栈基础知识。
什么是堆栈?在计算机中堆栈的概念分为:数据结构的堆栈和内存分配中堆栈。
数据结构的堆栈
堆:堆可以被看成是一…

Go GC 卡顿由秒级降到毫秒级以下:到底做了哪些优化?

垃圾回收(Garbage Collection,简称 GC)是编程语言中提供的内存管理功能。
在传统的系统级编程语言(主要指 C/C++)中,程序员定义了一个变…

Go将数字转换为字符串的正确姿势

以下文章来源于网管叨bi叨 ,作者KevinYan11
在许多语言中,你可以轻松地将任何数据类型转换为字符串,只需将其与字符串连接,或者使用类型转换表达式即可。…

一些编译时刻断言技巧

以下文章来源于Go 101 ,作者老貘
有时候,我们希望在编译时刻就能够判断某些条件是否成立,而不是等到运行时刻报错。但是Go并没有提供在编译时刻直接判断某个条…

如何声明支持有默认值的可选参数的函数?

以下文章来源于Go 101 ,作者老貘
我们知道,Go中的函数是不支持带默认值的可选参数的。这是Go语言的设计者为了保证代码可读性特意抛弃的功能。那么我们真得无…