Go 学习路线(2022)
原文链接: Go 学习路线(2022)
Go 语言的发展越来越好了,很多大厂使用 Go 作为主要开发语言,也有很多人开始学习 Go,准备转 Go 开发。
那么,怎么学呢?
我发现,在互联网时代,学习的困难不是说没有资料,而是资料太多,不知道应该看哪个,从哪开始看。
所以,我整理了一份 Go 学习路线,这份学习路线不以数量取胜,努 ...
kubernetes-client go基础实践
准备工作
1. 检查k8s的版本
[root@k8s-node1 ~]# kubectl version
Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.5", GitCommit:"aea7bbadd2fc0cd689de94a54e5b7b758869d691", GitTreeState:"clean", BuildDate:"2021-09-15T21:10:45Z", GoVersion:"go1.16.8", Compiler:"gc", Platform:"linux/a ...
带你十天轻松搞定 Go 微服务系列(一)
本文开始,我们会出一个系列文章跟大家详细展示一个 go-zero 微服务示例,整个系列分十篇文章,目录结构如下:
环境搭建(本文)
服务拆分
用户服务
产品服务
订单服务
支付服务
RPC 服务 Auth 验证
服务监控
链路追踪
分布式事务
期望通过本系列带你在本机利用 Docker 环境利用 go-zero 快速开发一个商城系统,让你快速 ...
go socket实现灵活发送接收消息
使用socket实现类似微信单聊自由发送或接收消息的功能.
server端:
func main() {
listener, err := net.Listen("tcp", ":8080")
if err != nil {
panic(err)
}
log.Println("Listening... ...")
for {
conn, err := listener.Accept()
if err != nil {
panic(err)
}
log.Println("connect success")
...
go操作excel
第三方包准备:
go get -u github.com/xuri/excelize/v2
案例: 读取excel,去除空行,筛选第二列不为空的行并将最终结果存入新的excel中.
思路: 读取excel,使用GetRows()方法读取指定sheet中所有数据,如果excel数据量庞大,可以指定一个int类型的flag,通过GetCellValue()方法逐行读取,因为我只保存两列数据,所 ...
JavaScript的执行过程(深入执行上下文、GO、AO、VO和VE等概念)
JavaScript的执行过程
前言
编写一段JavaScript代码,它是如何执行的呢?简单来说,JS引擎在执行JavaScript代码的过程中需要先解析再执行。那么在解析阶段JS引擎又会进行哪些操作,接下来就一起来了解一下JavaScript在执行过程中的详细过程,包括执行上下文、GO、AO、VO和VE等概念的理解。
1.初始化全局对象
首先,JS引擎 ...
Go 字符串拼接6种,最快的方式 -- strings.builder
我们首先来了解一下Go语言中string类型的结构定义,先来看一下官方定义:
// string is the set of all strings of 8-bit bytes, conventionally but not// necessarily representing UTF-8-encoded text. A string ...
Go 通过 Map/Filter/ForEach 等流式 API 高效处理数据
什么是流处理
如果有 java 使用经验的同学一定会对 java8 的 Stream 赞不绝口,极大的提高了们对于集合类型数据的处理能力。
int sum = widgets.stream()
.filter(w -> w.getColor() == RED)
.mapToInt(w -> w.getWeight())
.sum();
Stream 能让我们支持链式调用和函数编程的风 ...
Go 语言标准库之 os 包
os 包提供了平台无关的操作系统功能接口,主要是文件相关的I/O,本文会重点对文件操作进行介绍。
文件 I/O
在 Go 中,文件描述符封装在os.File结构中。os.File代表一个打开的文件对象,可以使用该对象进行文件读写操作。
type File struct {
*file // os specific
}
type file struct {
pfd poll.FD
n ...
go学习(四)新建go的Web项目
一、vscode搭建Go环境
1、安装go环境
官网或golang中文网 ,下载xx.windows-amd64.msi
cmd查看版本:go version
我用的是golang 1.16.5,golang 1.18版本添加了泛型。
2、使用 Go Module
2.1 go module简介
(1)不再需要GOROOT和GOPATH
使用Go Module进行包管理,就不再需要GOROOT和GOPATH了!
Go开发相关的环境变量(GOR ...
Go 疑难杂症汇总
1. revision v0.0.0: unknown revision v0.0.0
go get -u github.com/uudashr/gopkgs/cmd/gopkgs 报错:
[root@lubanseven home]$ go get -u github.com/uudashr/gopkgs/cmd/gopkgs
go: downloading github.com/uudashr/gopkgs v1.3.2
go: downloading github.com/uudashr/gopkgs/cmd/gopkgs v0.0.0-20191024034442-58e9141 ...
【Go反射】创建对象
前言
最近在写一个自动配置的库cfgm,其中序列化和反序列化的过程用到了大量反射,主要部分写完之后,我在这里回顾总结一下反射的基本操作。
第一篇【Go反射】读取对象中总结了利用反射读取对象的方法。
第二篇【Go反射】修改对象中总结了利用反射修改对象的方法。
本篇总结一下创建操作,即创建新的简单类型(int、uint、f ...
【Go反射】修改对象
前言
最近在写一个自动配置的库cfgm,其中序列化和反序列化的过程用到了大量反射,主要部分写完之后,我在这里回顾总结一下反射的基本操作。
上一篇【Go反射】读取对象中总结了利用反射读取对象的方法。
本篇总结一下写入操作,即对简单类型(int、uint、float、bool、string)、指针、切片、数组、map、结构体的修改操作, ...
Go结构体与接口
一、结构体(struct)
相当于Java中的类,结构体名称首字母需大写,结构体名称首字母大写是公有的,包外可访问;首字母小写是私有的,仅在包内可访问
结构体命名需要使用驼峰命名法,且不能出现下划线
Go语言提供了一种自定义数据类型,可以封装多个基本数据类型,这种数据类型叫结构体(stru ...
--go_out: protoc-gen-go: Plugin failed with status code 1.
person.proto文件
//指定版本
//注意proto3与proto2的写法有些不同
syntax = "proto3";
//包名,通过protoc生成时go文件时
option go_package="/address2";
//手机类型
//枚举类型第一个字段必须为0
enum PhoneType {
HOME = 0;
WORK = 1;
}
//手机
message Phone {
PhoneType type = 1;
string numb ...
我好像发现了一个Go的Bug?
从一次重构说起
这事儿还得从一次重构优化说起。
最近在重构一个路由功能,由于路由比较复杂,需求变化也多,于是想通过责任链模式来重构,刚好这段时间也在 Sentinel-Go 中看到相关源码。
用责任链模式,最大的好处是可以针对每次请求灵活地插拔路由能力,如:
这样实现会在每次请求到来时去 new 出整个责任链,可以预见 ...
go: go.mod file not found in current directory or any parent directory; see 'go help mod 解决
go: go.mod file not found in current directory or any parent directory; see 'go help mod
go:在当前目录或任何父目录中找不到 go.mod 文件; 参见“去帮助模块”
1、原因go module没有开启
yang@master:~/go/GOROOT/bin/hello$ go env
GO111MODULE=""
2、解决办法:
go的环境设置问题,执行:
go env -w GO11 ...
十一. Go并发编程--singleflight
一.前言
1.1 为什么需要Singleflight?
很多程序员可能还是第一次听说,本人第一次听说这个的时候以为翻译过来就是程序设计中被称为的是 "单例模式"。 google之后二者天壤之别。
一般情况下我们在写一写对外的服务的时候都会有一层 cache 作为缓存,用来减少底层数据库的压力,但是在遇到例如 redis 抖动或者其他情况可能 ...
【Go学习】一文彻底搞懂go mod使用
jquery中文网为您提供一文彻底搞懂go mod使用等资源,欢迎您收藏本站,我们将为您提供最新的一文彻底搞懂go mod使用资源
目录
一、如何使用go mod
二、golang开启mod后import报红解决
三、go mod 怎么导入本地其它项目的包?
四、完整代码
一、如何使用go mod
下面的函数中使用了iris,所以我们需要先使用go mod下 ...
go程序不停机重启
让我们给http服务写一个版本更新接口,让它自动更新版本并重启服务吧。
初步例子
注:为了精简,文中代码都去除了err处理
main.go
var Version = "1.0"
/* 打印版本 */
func version(w http.ResponseWriter, r *http.Request) {
msg := fmt.Sprintf("version %v\n", Version)
w.Write([]byte(msg))
}
/* ...