GO

go test个人经验(持续更新)

名称规范 算不上规范。 是我使用 Goland生成 test func的时候的自动命令规则,所以记录一下。 为某个函数编写测试方法: func Foo() error func TestFoo(t *testing.T) { } 为某个struct的方法测试: type Client struct ......
经验 个人 test go

【11.0】Go语言基础之结构体

【一】什么是结构体 结构体是用户定义的类型,表示若干个字段(Field)的集合。 有时应该把数据整合在一起,而不是让这些数据没有联系。 这种情况下可以使用结构体。 例如,一个职员有firstName 、 lastName和age 三个属性,而把这些属性组合在一个结构体employee中就很合理。 【 ......
语言基础 语言 结构 基础 11.0

go中标记一个模块内容为过时

今天在使用标准库 ioutil时发现已经过时,是通过在注释上添加实现的。 例如: // WsHandlerFunc is like HandleFunc in Gin. // // Deprecated: Not support. type WsHandlerFunc func(*websocket ......
为过 标记 模块 内容

【10.0】Go语言基础之指针

【一】什么是指针 指针是—种存储变量内存地址(Memory Address)的变量。 如上图所示,变量b 的值为156 ,而b 的内存地址为0x1040a124。 变量 α存储了b 的地址。 我们就称a指向了b 。 【二】指针的定义 【1】指针的语法基础 1 类型前放 * 表示指针类型,这个类型的指 ......
语言基础 指针 语言 基础 10.0

【9.0】Go语言基础之字符串

【一】字符编码引入 https://www.cnblogs.com/dream-ze/p/17826956.html 【二】字符串操作 【1】获取字符串的字节(byte) (1)英文字符 package main import "fmt" func main() { // 字符串 // 【1】单独获 ......
语言基础 字符串 字符 语言 基础

【6.0】Go语言基础之循环语句

【一】判断语句if~else package main import "fmt" // if ~ else 的使用 // [1] 语法 // 语法 if 条件 {条件符合,执行代码} // 语法 else if 条件 {条件符合,执行代码} // 语法 else {条件符合,执行代码} // [2] ......
语言基础 语句 语言 基础 6.0

【7.0】Go语言基础之数组、切片

【一】数组 数组是一种类型,可以连续存储数据,但是数据类型的是一致的。 类似于 Python 中的列表,是一种数据结构 【1】数组的定义 package main import "fmt" func main() { // 定义数组 // 定义一个长度为 3 的数组,里面的数据类型为 int 类型 ......
语言基础 数组 语言 基础 7.0

【5.0】Go语言基础之包的使用

【一】包的作用 为了便于组织代码,同一种类型的代码,写在同一个包下,便于管理 【二】定义包的步骤 【1】新建一个文件夹 【2】内部有很多go文件 【3】go文件的第一行声明包名 在每个go文件的第一行,都要声明包名,并且包名必须一致 package user 【4】在一个文件夹下只能有一个包(同级) ......
语言基础 语言 基础 5.0

【8.0】Go语言基础之可变函数参数、map的使用

【一】可变长参数 【1】任意长度的指定类型的参数 package main import "fmt" func main() { // 可变长参数 // 调用函数 foo(1, 2, 3, 4, 5, 6) // 这是接收到的 参数 a :>>>> [1 2 3 4 5 6] // 这是接收到的 参 ......
语言基础 函数 参数 语言 基础

2023-11-11:用go语言,字符串哈希+二分的例题。 给定长为 n 的源串 s,以及长度为 m 的模式串 p, 要求查找源串中有多少子串与模式串匹配, s‘ 与 s 匹配,当且仅当 s‘ 与 s

2023-11-11:用go语言,字符串哈希+二分的例题。 给定长为 n 的源串 s,以及长度为 m 的模式串 p, 要求查找源串中有多少子串与模式串匹配, s' 与 s 匹配,当且仅当 s' 与 s 长度相同,且最多有 k 个位置字符不同。 其中 1 <= n, m <= 10^6,0 <= k ......
模式 例题 字符串 长度 字符

Go实现Zabbix企业微信应用通知告警

企业微信 https://work.weixin.qq.com/ 企业微信->应用管理->创建应用 个人微信也能接收企业微信信息 我的企业 -> 微信插件 -> 扫码关注 特殊说明 之前企业微信只需要调用接口就能实现微信应用通知,最近改版,变得比较复杂 1:需要配置可信IP才能发 2: 配置可信IP ......
Zabbix 企业

改善Go语言编程质量的50个有效实践,技能落地总结50个高效Go程序设计技巧

改善Go语言编程质量的50个有效实践,技能落地总结50个高效Go程序设计技巧 慕课专栏:《改善Go语言编程质量的50个有效实践》 Go语言是Google大牛团队(Robert Griesemer、Rob Pike以及Ken Thompson)设计的一种静态类型、编译型编程语言,支持垃圾回收和轻量级并 ......

GO实现分布式爬虫—掌握go语言通道与协程项目架构设计

GO实现分布式爬虫—掌握go语言通道与协程项目架构设计 Go高并发微服务分布式 1.命令行的用户管理 用户信息存储 => 内存 => 结构 [] map => 用户 ID name age tel addr [len] [] map 值类型使用string 用户添加 用户的查询 用户修改 // 请输 ......
爬虫 分布式 架构 通道 语言

Go语言开发分布式任务调度 轻松搞定高性能Crontab,技能储备+项目开发

写在前面 最近离职交接空档期,在慕课网上学习了下go语言实现分布式crontab任务调度系统。自己也跟随视频实现了一把(跟原版略有不同)。现把成果记录一下。 最终代码: https://github.com/funkol2007/distributed_crontab 系统介绍 实现目标: 实现一个 ......

go 1.6 废弃 io/ioutil 包后的替换函数

go 1.6 废弃 io/ioutil 包后的替换函数 io/ioutil 替代 ioutil.ReadAll -> io.ReadAll ioutil.ReadFile -> os.ReadFile ioutil.ReadDir -> os.ReadDir // others ioutil.Nop ......
函数 ioutil 1.6 go io

【3.0】Go语言语法初识之变量

【零】注释语法 注释就是对代码的解释和说明,其目的就是让人们更加轻松的了解代码。注释是开发人员的一个重要的习惯。 单行注释使用 // 开头 多行注释使用 /* 开头 */ 结尾 // package 定义包名 main 包名 package main // import 引用库 fmt 库名 imp ......
变量 语法 语言 3.0

【4.0】Go语言语法基础之函数

【一】函数基础 【1】语法 func关键字 函数名(形参1 形参1的类型,形参2 形参2的类型) (返回值类型) { 函数体(函数体的内容和缩进无关,只要是在大括号内,都是函数体内容) } 在Python中需要先定义函数再使用 在Go中不需要先定义再使用 func main() { } 【2】无参数 ......
语法 函数 语言 基础 4.0

【1.0】Go语言介绍及引入

【一】Go语言介绍 Go语言是Google公司在2007开发一种静态强类型、编译型语言,并在2009年正式对外发布。 静态强类型语言 需要先编译再执行 比如C、C#、Java等语言需要先将代码编译成不同平台的可执行文件,才能在不同平台上运行 需要解释器 比如Python、PHP、node.js等语言 ......
语言 1.0

go.mod file not found in current directory or any parent directory; see 'go help modules' (exit status 1)

go.mod file not found in current directory or any parent directory; see 'go help modules' (exit status 1) 原因: 目录少缺少 go.mod 文件。 解决方法: 在终端中输入: go mod in ......
directory current modules parent status

Go中字符串处理:fmt.Sprintf与string.Builder的比较

在Go语言中,我们通常会遇到两种主要的方式来处理和操作字符串:使用fmt.Sprintf函数和string.Builder类型。尽管两者都可以实现字符串的格式化和连接,但它们在性能和用法上有一些关键区别。 1. fmt.Sprintf fmt.Sprintf是一个函数,它根据提供的格式化字符串和参数 ......
字符串 字符 Sprintf Builder string

go基础-泛型

概述 在强类型变成语言中,类型是确定不可变,如函数入参是确定类型、链表元素是确定类型,这极大限制了函数功能。也有些解决方案,为每种类型都实现一版函数,会导致大量重复代码;使用类型转换,使用特殊形参(如Object、any),在函数内部判断并转换类型后再执行逻辑,导致大量类型转换的代码,结构混乱,Ja ......
基础

go源码解析-map

map 简介 golang的map主要是基于hash-bucket实现 demoMap:=make(int,len) type hmap struct { // Note: the format of the hmap is also encoded in cmd/compile/internal/ ......
源码 map

go-epoll源码解析.md

golang-epoll模型源码解析 epoll epoll is an io multipexing model in linux env. epoll generate epoll table. A new socket will be put into epoll table after bi ......
源码 go-epoll epoll go md

EF报错:Unable to create an object of type 'XXXXXXX'. For the different patterns supported at design time, see https://go.microsoft.com/fwlink/?linkid=851728

这个是在EF迁移的时候报错: 解决方案:修改你的MyDbcontext: 代码如下: public class StoreDbContexttFactory : IDesignTimeDbContextFactory< ‘你的类名’> { public ‘你的类名’CreateDbContext(s ......

Go 面向接口编程

接口有什么用?就是存储未实现的方法,作为实现的此方法的结构体的实例的句柄。 type Sayer interface { say() } type Dog struct {} type Cat struct {} func (*Dog) say() { fmt.Println("Woew woew" ......
接口 Go

Go 接口:Go中最强大的魔法,接口应用模式或惯例介绍

Go 接口:Go中最强大的魔法,接口应用模式或惯例介绍 目录Go 接口:Go中最强大的魔法,接口应用模式或惯例介绍一、前置原则二、一切皆组合2.1 一切皆组合2.2 垂直组合2.2.1 第一种:通过嵌入接口构建接口2.2.2 第二种:通过嵌入接口构建结构体类型2.2.3 第三种:通过嵌入结构体类型构 ......
接口 惯例 模式 魔法 Go

make是不是go的关键字

keyword go语言介绍中标榜的一个重要特点是语法简单,这里有一个不同语言关键字的个数,同样是为了防止网页打不开或者丢失,这里单独复制一份: C (ANSI (C89)) (32 keywords) C (C11) (44 keywords) C (C17) (44 keywords) C (C ......
关键字 关键 make

Go Web开发进阶项目实战-Go语言实战课程体系,企业项目开发经验与技巧

书接上回,上次我们搭建好了项目入口文件,同时配置了路由体系,接着就可以配置项目的模板了,这里我们采用Iris内置的模板引擎,事实上,采用模板引擎并不意味着前后端耦合,模板中的数据保持其独立性即可,也就是说模板的数据操作交互方式采用http接口请求的形式,Iris并不参与模板逻辑,只返回Json格式的 ......
实战 项目 项目开发 体系 语言

"Go to Source" for Latex on VS Code does not seem to work

I recommend installing LaTeX Workshop instead of LaTeX Preview. Then use the following shortcuts for synctex (aka 'jumping' between code and pdf): fro ......
quot Source Latex Code does

GO实战电商网站全流程开发实现高并发秒杀系统

GO实战电商网站全流程开发实现高并发秒杀系统 1、秒杀业务分析 正常电子商务流程 (1)查询商品;(2)创建订单;(3)扣减库存;(4)更新订单;(5)付款;(6)卖家发货; 秒杀业务的特性 (1)低廉价格;(2)大幅推广;(3)瞬时售空;(4)一般是定时上架;(5)时间短、瞬时并发量高; 2、秒杀 ......
实战 流程 系统 网站