go
尊贵的QQ会员
goher, phper
展开
-
Go语言解析非UTF8编码的XML解决方案
在工作中遇到了解析GB2312编码的xml的需求,网上有解析GBK编码XML的解决方案,但对于GB2312编码这种方式并生效,在此推荐一种简单的方法,即直接将xml的编码申明中的encode值替换为UTF-8即可<?xml version="1.0" encoding="GBK"?>xml = strings.Replace(xml, "GB2312", "UTF-8", 1)...原创 2020-09-25 12:20:20 · 952 阅读 · 0 评论 -
高质量后端工程师学习好文推荐(持续更新)
golangGo语言sync包的应用详解Golang 并发编程之同步原语Go内存管理之代码的逃逸分析2万字长文从源码角度看 Golang的调度Golang三色标记、混合写屏障GC模式图文全分析Go框架解析-GinGo框架解析-echoGolang 性能优化实战图解Go的channel底层原理单机和分布式场景下,有哪些流控方案?图解 Go 程序是怎样跑起来的go trace 剖析 go1.14 异步抢占式调度字节跳动踩坑记#2:Go 服务锁死数据结构和算法Go 语言实现数据原创 2020-08-27 11:56:12 · 182 阅读 · 1 评论 -
Go语言基础数据类型所占内存大小
基础知识bit(位):计算机中数据的最小单位,二进制数中的一个数位,0或者1Byte(字节):计算机中数据的基本单位,每8位(bit)组成一个字节golang类型大小int81字节int162字节int324字节int648字节int4字节(32位)/8字节(64位)float324字节float648字节string1字节(英文)/2~4字节(中文,取决于字符编码类型)bool1字节...原创 2020-08-02 10:46:02 · 2617 阅读 · 0 评论 -
Golang切片扩容机制
前言相信很多goher都知道slice在append时如果超出了原来的容量时会翻倍扩容。疑问这种翻倍扩容是可持续的吗?比如slice已经4GB了,这个时候难道会直接申请8GB?带着这个疑问我们直接去源码里找答案。真相// src/runtime/slice.go// go version 1.13func growslice(et *_type, old slice, cap int) slice {// ...省略部分 newcap := old.cap doublecap原创 2020-08-02 10:45:06 · 1704 阅读 · 0 评论 -
安装golang多版本管理器gvm
gg是一个Linux、macOS、Windows下的命令行工具,可以提供一个便捷的多版本go环境的管理和切换。注:g和gvm是一个东西,g托管在github,gvm托管在gitee,由于gitee命名限制所以改名gvm特性支持列出可供安装的go版本号支持列出已安装的go版本号支持在本地安装多个go版本支持卸载已安装的go版本支持在已安装的go版本之间自由切换安装自动化安装Linux/macOS(适用于bash、zsh)# 建议安装前清空`GOROOT`、`GOBIN`等环原创 2020-05-19 11:32:46 · 997 阅读 · 0 评论