going
理解Go中的零值
在 Go 语言中,零值(Zero Value)是指在声明变量但没有显式赋值的情况下,变量会被自动赋予一个默认值。这个默认值取决于变量的类型,不同类型的变量会有不同的零值。零值是 Go 语言中的一个重要概念,因为它确保了变量在声明后具有一个可预测的初始状态,减少了未初始化变量引发的问题。 以下是一些常 ......
Go实现Zabbix企业微信机器人告警
企业微信 应用通知的程序相对复杂点,见上篇文章 机器人告警相对简单点,只需一个url即可 企业微信里创建一个机器人 注意机器人的url,后续程序中需要使用 直接上程序sjgzbx_machine.go package main import ( "bytes" "encoding/json" "fm ......
go test个人经验(持续更新)
名称规范 算不上规范。 是我使用 Goland生成 test func的时候的自动命令规则,所以记录一下。 为某个函数编写测试方法: func Foo() error func TestFoo(t *testing.T) { } 为某个struct的方法测试: type Client struct ......
【11.0】Go语言基础之结构体
【一】什么是结构体 结构体是用户定义的类型,表示若干个字段(Field)的集合。 有时应该把数据整合在一起,而不是让这些数据没有联系。 这种情况下可以使用结构体。 例如,一个职员有firstName 、 lastName和age 三个属性,而把这些属性组合在一个结构体employee中就很合理。 【 ......
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 类型前放 * 表示指针类型,这个类型的指 ......
【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] ......
【7.0】Go语言基础之数组、切片
【一】数组 数组是一种类型,可以连续存储数据,但是数据类型的是一致的。 类似于 Python 中的列表,是一种数据结构 【1】数组的定义 package main import "fmt" func main() { // 定义数组 // 定义一个长度为 3 的数组,里面的数据类型为 int 类型 ......
【5.0】Go语言基础之包的使用
【一】包的作用 为了便于组织代码,同一种类型的代码,写在同一个包下,便于管理 【二】定义包的步骤 【1】新建一个文件夹 【2】内部有很多go文件 【3】go文件的第一行声明包名 在每个go文件的第一行,都要声明包名,并且包名必须一致 package user 【4】在一个文件夹下只能有一个包(同级) ......
【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 ......
改善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 ......
【3.0】Go语言语法初识之变量
【零】注释语法 注释就是对代码的解释和说明,其目的就是让人们更加轻松的了解代码。注释是开发人员的一个重要的习惯。 单行注释使用 // 开头 多行注释使用 /* 开头 */ 结尾 // package 定义包名 main 包名 package main // import 引用库 fmt 库名 imp ......
【4.0】Go语言语法基础之函数
【一】函数基础 【1】语法 func关键字 函数名(形参1 形参1的类型,形参2 形参2的类型) (返回值类型) { 函数体(函数体的内容和缩进无关,只要是在大括号内,都是函数体内容) } 在Python中需要先定义函数再使用 在Go中不需要先定义再使用 func main() { } 【2】无参数 ......
【1.0】Go语言介绍及引入
【一】Go语言介绍 Go语言是Google公司在2007开发一种静态强类型、编译型语言,并在2009年正式对外发布。 静态强类型语言 需要先编译再执行 比如C、C#、Java等语言需要先将代码编译成不同平台的可执行文件,才能在不同平台上运行 需要解释器 比如Python、PHP、node.js等语言 ......
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 ......
Go中字符串处理:fmt.Sprintf与string.Builder的比较
在Go语言中,我们通常会遇到两种主要的方式来处理和操作字符串:使用fmt.Sprintf函数和string.Builder类型。尽管两者都可以实现字符串的格式化和连接,但它们在性能和用法上有一些关键区别。 1. fmt.Sprintf fmt.Sprintf是一个函数,它根据提供的格式化字符串和参数 ......
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/ ......
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 ......
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中最强大的魔法,接口应用模式或惯例介绍一、前置原则二、一切皆组合2.1 一切皆组合2.2 垂直组合2.2.1 第一种:通过嵌入接口构建接口2.2.2 第二种:通过嵌入接口构建结构体类型2.2.3 第三种:通过嵌入结构体类型构 ......
make是不是go的关键字
keyword go语言介绍中标榜的一个重要特点是语法简单,这里有一个不同语言关键字的个数,同样是为了防止网页打不开或者丢失,这里单独复制一份: C (ANSI (C89)) (32 keywords) C (C11) (44 keywords) C (C17) (44 keywords) C (C ......