module go

【入门】Go语言函数详解

一、函数介绍 1.1 函数介绍 函数是基本的代码块,完成某一功能的程序指令(语句)集合,用于执行一个任务。 函数声明告诉了编译器函数的名称,返回类型,和参数 Go提供了很多内置函数,比如len()函数可以接受不同类型参数,并返回该参数的长度 不支持重载(函数名称不能重复定义) 1.2 函数语法定义 ......
函数 语言

Go语言——正则表达式

概述: 概念: 正则表达式(regular expression)就是由元字符组成的⼀种字符串匹配的模式,使⽤这种模式可以实现对⽂本内容解析、校验、替换。 正则表达式的⽤途: 数据有效性验证:⽤户注册模块是应⽤正则表达式最集中的地⽅,主要是 ⽤于验证⽤户帐号、密码、EMAIL、电话号码、QQ号码、身 ......
正则 表达式 语言

Go语言:通过TDD驱动测试开发为同事写的程序优化提速——初次接触并发与channel

正文: 假如同事已经写了一个 CheckWebsites 的函数检查 URL 列表的状态。 package concurrency type WebsiteChecker func(string) bool func CheckWebsites(wc WebsiteChecker, urls []s ......
同事 channel 语言 程序 TDD

go基础语法规则

前言: go语言基础语法记录 正文: 1、package package中必须包含一个main的package,并且只能有一个,不然无法编译 2、使用 import 导入包,使用goland 会自动导入 3、每行的结尾不需要 增加结束符 ; 4、字符串只能使用双引号,不能使用单引号 5、单引号中只能 ......
语法 规则 基础

window和linux如何将go代码打包成可执行程序

前言: 在window下代码写好了,如何部署到linux呢,或者怎么打包成exe程序,在window下运行呢?查看正文 正文: window下如何打包成exe文件,并运行。 打开goland,点击Terminal 终端 输入指令: go env 查看 GOOS是否windows 我这里之前改过。所以 ......
代码 程序 window linux

【入门】Go语言for循环

一、for循环基本结构 1.1 for循环 语法: for 初始化变量; 条件判断; 修正变量 { 循环体 } 案例:打印十遍,今晚不熬夜 package main import "fmt" func main() { for i := 0; i < 10; i++ { fmt.Println("今 ......
语言 for

Go接入kafka

需要借助的库 github.com/Shopify/sarama // kafka主要的库* github.com/bsm/sarama-cluster // kafka消费组 生产者 package producer import ( "fmt" "github.com/HappyTeemo756 ......
kafka

Go 语言:通过TDD测试驱动开发学习 Mocking (模拟)的思想

正文: 现在需要你写一个程序,从 3 开始依次向下,当到 0 时打印 「GO!」 并退出,要求每次打印从新的一行开始且打印间隔一秒的停顿。 3 2 1 Go! 我们将通过编写一个 Countdown 函数来处理这个问题,然后放入 main 程序,所以它看起来这样: package main func ......
Mocking 语言 思想 TDD Go

ERROR Failed to compile with 541 errors 11:27:44 These dependencies were not found: * core-js/modules/es.array.concat.js in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./

ERROR Failed to compile with 541 errors 11:27:44 These dependencies were not found: * core-js/modules/es.array.concat.js in ./node_modules/cache-loade ......

Go语言:一文看懂什么是DI依赖注入(dependency injection)设计模式

前言: 本文主要介绍的是Goalng中关于 DI 的部分,前一部分会先通过典型的面向对象语言Java引入DI这个概念 仅供初学者理解使用,文章如有纰漏敬请指出 本文涉及到的知识面较为零散,其中包含面向对象编程的 SOLID原则、各语言典型的DI框架等,博主都已插入连接🔗供读者访问自行查阅 另外本文 ......

GO实现Redis:GO实现Redis集群(5)

采用一致性hash算法将key分散到不同的节点,客户端可以连接到集群中任意一个节点 https://github.com/csgopher/go-redis 本文涉及以下文件: consistenthash:实现添加和选择节点方法 standalone_database:单机database cli ......
Redis 集群

【入门】Go语言流程控制

一、if判断 1.1 单if结构 语法: if 条件判断 { 代码句 } 案例:判断是否成年了 package main import "fmt" func main() { var age uint fmt.Println("请输入您的年龄:") fmt.Scan(&age) if age >= ......
流程 语言

module Federation 简介与应用

什么是 module Federation module Federation(下面简称 MF) 是 webpack5 推出的最新的概念 有用过 webpack 的小伙伴都知道, 在我们打包时, 都会对资源进行分包, 或者使用异步加载路由的方案, 这样打出来的包(也叫 chunk), 在我们使用时, ......
Federation 简介 module

go 基础

go 入门 hello world 仪式感还是要有的 package main func main() { println("hello world") } print系列主要用于输出,主要包含了三个方法: package main import "fmt" func main() { // 一次输 ......
基础 go

Go语言基础(二)

写在前面 上次的博客主要介绍了Go语言中的变量和if,for循环等。见Go语言基础(一)。 这次主要来学习一下Go语言中的函数,数组与切片。 函数的具体定义 基本定义 直接上例子: func add() { fmt.Println("Hello World") } func max(num1 int ......
语言基础 语言 基础

GO实现Redis:GO实现Redis的AOF持久化(4)

将用户发来的指令以RESP协议的形式存储在本地的AOF文件,重启Redis后执行此文件恢复数据 https://github.com/csgopher/go-redis 本文涉及以下文件: redis.conf:配置文件 aof:实现aof redis.conf appendonly yes app ......
Redis AOF

Go 语言 new 和 make 关键字的区别

原文链接: Go 语言 new 和 make 关键字的区别 本篇文章来介绍一道非常常见的面试题,到底有多常见呢?可能很多面试的开场白就是由此开始的。那就是 new 和 make 这两个内置函数的区别。 其实这个问题本身并不复杂,简单来说就是,new 只分配内存,而 make 只能用于 slice、m ......
关键字 关键 语言 make new

去中心化组件共享方案 —— Webpack Module Federation(模块联邦)

在大型应用中, 我们可能会对其进行拆分,分成容器、主应用和多个子应用,使拆分后的应用独立开发与部署,更加容易维护。但无论是微应用、公共模块应用,都需要放到容器中才能使用。 如果多个应用之间希望资源共享,除了使用 npm 包的形式,基于Webpack 5 Module Federation(模块联邦) ......
联邦 Federation 组件 模块 Webpack

Go03-函数+包+异常处理

Go03-函数+包+异常处理 1.函数的基本介绍 func main() { // 1 为完成某一功能的程序指令的集合,成为函数。 // 2 函数分为自定义函数和系统函数。 // 3 函数的定义,使用关键字func来定义一个函数。 /* func 函数名 (形参列表) (返回值列表) { 函数执行的 ......
函数 Go 03

Go02-运算符+流程控制

Go02-运算符+流程控制 1.运算符基本介绍 Go中的运算符分为:算术运算符、赋值运算符、比较运算符/关系运算符、逻辑运算符、位运算符和其他运算符。 Go中没有三元运算符?。 2.算术运算符 // 1 算术运算符。 // + 正号;- 负号; // + 加;- 减;* 乘;/ 除;% 取余; // ......
运算符 流程 Go 02

Go06-文件操作+单元测试+goroutine+channel+反射

Go06-文件操作+单元测试+goroutine+channel+反射 1.打开和关闭文件 func main() { // 1 打开文件。 // file可以称为file对象、file指针、file文件句柄。 file, err := os.Open("D:\\1.txt") if err != ......
goroutine 单元 channel 文件 Go

Go01-开发环境搭建+注释+基本数据类型+指针+命名规范

Go01-开发环境搭建+注释+基本数据类型+指针+命名规范 1.Go常用网站 https://www.topgoer.com/,Go学习网站,包含Go基础教程、beego、lris等Go开发常用框架。 Go开发软件下载:https://code.visualstudio.com/,VSCode;ht ......
指针 注释 类型 环境 数据

【入门】Go语言运算符详解

一、算数运算符 + - * / % ++ -- 1.1 案例一:算数运算符练习 package main import "fmt" func main(){ // 加减乘除 fmt.Printf("1 + 1 = %v \n",1+1) fmt.Printf("3 - 1 = %v \n",3-1) ......
运算符 语言

Go日常

Test 1. 简介 Go 语言中自带有一个轻量级的测试框架 testing 和自带的 go test 命令来实现单元测试和性能测试。 2. 要求 文件名必须是`_test.go`结尾的,这样在执行`go test`的时候才会执行到相应的代码 你必须 import `testing`这个包 所有的测 ......

Go map 内存泄露

前言 在Go中, map这个结构使用的频率还是比较高的. 其实在所有的语言中, map使用的频率都是很高的. 之前在使用中, 一直都知道map的内存在元素删除的时候不会回收, 但一直没有仔细的研究为什么. 今天就来好好揣摩揣摩. func main() { m := make(map[int][12 ......
内存 map Go

【入门】Go语言常量详解

1、什么是常量? 程序运行期间不可以变的量 使用 const 定义 不能修改常量的值 不能打印常量的地址 常量在定义时候必须赋值 2、常量于变量的区别? 变量的值是可以变的,常量值不可以变 只是把变量的var改成了 const,常量在定义时候必须赋值。 3、定义常量 语法: const 常量名称 = ......
常量 语言

go学习 day223 家庭记账软件

###面向过程 package main import "fmt" func main() { // 声明一个变量,保存用户的输入 key := "" // 声明一个变量,查看是否退出程序 var status bool = true // 账户余额 var balance float64 = 10 ......
家庭 软件 day 223

【入门】Go语言变量详解

一、变量赋值的几种方式 1.1 声明单个变量 语法: var name type name:变量名称 type:变量类型 案例: package main func main() { var name string var age uint } 1.2 声明多个变量 语法: var name1,na ......
变量 语言

go gin web应用-通过中间件形式实现通用的参数检验

都知道 gin 在web开发方面应用广泛,但在参数校验上,之前写一堆 POST 接口的时候,每个接口的业务代码里都要去实现 validate 校验逻辑,感觉代码复用糟糕。 为解决这问题,想到通过 reflect 包是不是可以实现通用的校验处理呢。如果可以实现,业务逻辑就只需要专注与业务实现,进一步实 ......
中间件 形式 参数 gin web

go-pprof

非侵入式的分析工具。 主要分为几个阶段。 1、收集运行信息 引入包 import "runtime/pprof" var cpuprofile = flag.String("cpuprofile", "", "write cpu profile to file") pprof.StartCPUPro ......
go-pprof pprof go