GO

Go 项目的 MAKE 工具

Go 项目的 MAKE 工具 MAKE 工具是 Linux 和 Unix 系统中一种常见的自动化构建工具,通常用于管理和组织软件项目。在 Go 语言中,使用 MAKE 工具可以轻松地管理和构建项目,并自动执行诸如编译、测试、安装等复杂的操作。 下面将介绍如何在 Go 项目中使用 MAKE 工具,并说 ......
工具 项目 MAKE Go

WASI support in Go

原文在这里。 由 Johan Brandhorst-Satzkorn, Julien Fabre, Damian Gryski, Evan Phoenix, and Achille Roussel 发布于 2023年9月13日 Go 1.21添加了一个新的端口,通过新的GOOS值wasip1来定位W ......
support WASI Go in

Go每日一库之11:godotenv

简介 twelve-factor应用提倡将配置存储在环境变量中。任何从开发环境切换到生产环境时需要修改的东西都从代码抽取到环境变量里。 但是在实际开发中,如果同一台机器运行多个项目,设置环境变量容易冲突,不实用。godotenv库从.env文件中读取配置, 然后存储到程序的环境变量中。在代码中可以使 ......
godotenv

go包依赖管理-构建完整的依赖项目:目录结构及包的调用

目录结构: <home>/ |-- greetings/ |-- hello/1.分别进入对应目录创建以上目录结构 //bash切换到用户主目录 cd $HOMEPAHT$ //bash新建greetings目录并进入该目录 mkdir greetings cd greetings //bash创建 ......
结构 目录 项目

Go语言中匿名嵌套和类型嵌套的区别

在Go语言中,匿名嵌套结构体和与类型同名的嵌套结构体不是完全等价的,它们有一些重要的区别。以下是它们之间的主要区别: 字段访问: 匿名嵌套结构体:当你使用匿名嵌套结构体时,内部结构体的字段可以被直接访问,就好像它们是外部结构体的字段一样。这意味着你可以直接使用外部结构体的实例来访问内部结构体的字段, ......
语言 类型

Go每日一库之10:logrus

简介 前一篇文章介绍了 Go 标准库中的日志库 log。最后我们也提到,log库只提供了三组接口,功能过于简单了。 今天,我们来介绍一个日志库中的“明星库”——logrus。本文编写之时(2020.02.07),logrus 在 GitHub 上 star 数已达到 13.8k。 logrus完全兼 ......
logrus

crypto 加解密库简介与测试【GO 常用的库】

〇、前言 GO 语言的标准库 crypto 提供了一组用于加密和解密的包,包括对称加密、哈希函数、数字签名、随机数生成等功能。在日常开发中,通过使用这些库,可以确保数据的安全性和完整性。 对于使用频率比较高的东西,还是要汇总一下用来备查。 一、md5 加密 md5 包实现了 RFC 1321 中定义 ......
常用 简介 crypto

报错:go: go.mod file not found in current directory or any parent directory; see 'go help modules'

报错:go: go.mod file not found in current directory or any parent directory; see 'go help modules' 知识补充: ......
directory go current modules parent

GO语言集成开发工具环境-JetBrains GoLand 2023 Mac+win版

JetBrains GoLand是一款由JetBrains开发的集成开发环境(IDE),专门用于Go语言的开发。它提供了丰富的功能和工具,帮助开发者更高效地编写、调试和测试Go代码。 →→↓↓载GoLand 2023 mac/win版 首先,GoLand具有强大的代码编辑功能。它支持代码自动补全、语 ......
开发工具 JetBrains 语言 环境 工具

Go之流程控制大全: 细节、示例与最佳实践

本文深入探讨Go语言中的流程控制语法,包括基本的if-else条件分支、for循环、switch-case多条件分支,以及与特定数据类型相关的流程控制,如for-range循环和type-switch。文章还详细描述了goto、fallthrough等跳转语句的使用方法,通过清晰的代码示例为读者提供 ......
示例 细节 大全

Go每日一库之9:log

简介 在日常开发中,日志是必不可少的功能。虽然有时可以用fmt库输出一些信息,但是灵活性不够。Go 标准库提供了一个日志库log。本文介绍log库的使用。 快速使用 log是 Go 标准库提供的,不需要另外安装。可直接使用: package main import ( "log" ) type Us ......
log

从Go1.16开始,ioutil.ReadAll、ioutil.ReadFile和ioutil.ReadDir被弃用

废弃ioutil包后的替换函数 ioutil.ReadAll -> io.ReadAll ioutil.ReadFile -> os.ReadFile ioutil.ReadDir -> os.ReadDir others ioutil.NopCloser -> io.NopCloser iouti ......
ioutil ReadFile ReadAll ReadDir Go1

深挖 go 之 for-range 排坑指南

https://mp.weixin.qq.com/s/rfbZ79TmZ61lx_JBnwDJMQ# or https://www.cnblogs.com/-wenli/p/12343300.html ......
for-range 指南 range for go

Go每日一库之8:cast(类型转换)

简介 今天我们再来介绍 spf13 大神的另一个库cast。cast是一个小巧、实用的类型转换库,用于将一个类型转为另一个类型。 最初开发cast是用在hugo中的。 快速使用 先安装: $ go get github.com/spf13/cast 后使用: package main import ......
类型 cast

(转)Go语言基础——内置函数

原文:https://blog.csdn.net/m0_60496161/article/details/130836218 内置类型值类型: bool int(32 or 64), int8, int16, int32, int64 uint(32 or 64), uint8(byte), uin ......
语言基础 函数 语言 基础

go-zero 消息队列使用

消息队列对于大型微服务系统是必不可少的,主要是用来解决削峰、降低服务之间的耦合度以及异步能力。 go-queue 在 segmentio/kafka-go 这个包基础上,使用 go-zero 进行了上层统一封装,让开发人员更容易上手,将更多时间聚焦在开发业务上。https://github.com/ ......
队列 go-zero 消息 zero go

2023-09-13:用go语言,给定一个整数数组 nums 和一个正整数 k, 找出是否有可能把这个数组分成 k 个非空子集,其总和都相等。 输入: nums = [4, 3, 2, 3, 5,

2023-09-13:用go语言,给定一个整数数组 nums 和一个正整数 k, 找出是否有可能把这个数组分成 k 个非空子集,其总和都相等。 输入: nums = [4, 3, 2, 3, 5, 2, 1], k = 4。 输出: True。 来自左程云。 答案2023-09-13: 第一种算法( ......
整数 组分 空子 数组 nums

Go安装

1.官网下载安装 https://golang.org/dl/ 2.环境变量 用户变量path 系统变量工作路径 3.检验 go version 4.在工作目录下创建 bin 编译后可执行文件 pkg 编译后归档文件 src 源码文件 5.src下新建hello目录 新建main.go packag ......

Go语言中的隐式接口冲问题

Go语言中的隐式接口冲突 问题 Go中隐式接口,只要实现了某个接口就能当作那个接口使用,但是在不同接口中,可能有相同名字的方法,这时候就有可能会有接口冲突的问题。 隐式接口的好处之一就是松耦合,接口之间容易相互转换 比如有个自定义接口 MyError 接口,里面有个Error()方法 type My ......
接口 语言 问题

Go每日一库之7:fsnotify(跨平台文件监听)

简介 上一篇文章Go 每日一库之 viper中,我们介绍了 viper 可以监听文件修改进而自动重新加载。 其内部使用的就是fsnotify这个库,它是跨平台的。今天我们就来介绍一下它。 快速使用 先安装: $ go get github.com/fsnotify/fsnotify 后使用: pac ......
fsnotify 文件

使用 Go 和 Linux Kernel 技术探究容器化原理

使用 Go 和 Linux Kernel 技术探究容器化原理 小白debug 2023-09-13 08:06 发表于上海 以下文章来源于gopher云原生 ,作者邹俊豪 gopher云原生. 专注于Go语言、云原生技术、基础设施及架构设计等知识分享 容器的优势 传统模式的部署,直接将多个应用运行在 ......
容器 原理 Kernel Linux 技术

Go学习笔记5

十六、基于TCP协议的网络通信 创建客户端 【1】调用Dial函数:(net包下) 【2】代码: package main import( "fmt" "net" //所需的网络编程全部都在net包下 ) func main(){ //打印: fmt.Println("客服端启动。。") //调用D ......
笔记

ClickHouse使用之五 ——clickhouse-go内存泄露解决

这个代码运行2亿条记录,发现内存使用一直增加,内存满了以后,直接被killed func (p *ClickHouseClient) CountAllTxTypees(startId int, endId int, SpaceStore SpaceInterface) (web3datas []We ......

Go每日一库之6:viper

简介 上一篇文章介绍 cobra 的时候提到了 viper,今天我们就来介绍一下这个库。 viper 是一个配置解决方案,拥有丰富的特性: 支持 JSON/TOML/YAML/HCL/envfile/Java properties 等多种格式的配置文件; 可以设置监听配置文件的修改,修改时自动加载新 ......
viper

glog 日志库简介与测试【GO 常用的库】

〇、前言 golang/glog 是 C++ 版本 google/glog 的 Go 版本实现,基本实现了原生 glog 的日志格式。 在 Kuberntes 中,glog 是默认日志库。因此需要详细了解下。下面列举下 glog 的特点: 高效性:glog 采用了异步写入日志的方式,这意味着日志记录 ......
常用 简介 日志 glog

go-zero 生成中间件

1.API编写 2.生成API 生成后的目录如下 ......
中间件 go-zero zero go

go-zero接入GORM并使用

1.初始化数据库连接 2.建立模型 3.配置GORMDB 4.在RPC使用 5.启动RPC会看到如下结果 6.进行测试 ......
go-zero GORM zero go

Go语言基础-02复合数据类型

课程内容 1流程控制补充 goto break+label continue+label 2数组: 声明(零值,类型),初始化,操作: 3切片: 声明(零值,类型),初始化,操作: 4map: 声明(零值,类型),初始化,操作: 5练习,字符统计 我有一个梦想 6字符串处理 7排序 8作业 001 ......
语言基础 语言 类型 基础 数据

go-zero 生成model

1.准备MYSQL文件 CREATE TABLE user ( id bigint AUTO_INCREMENT, name varchar(255) NULL COMMENT 'The username', password varchar(255) NOT NULL DEFAULT '' COM ......
go-zero model zero go

go-zero 生成RPC

1.编写message.proto文件 syntax = "proto3";package pb;// 生成golang 代码后的包名option go_package ="./pb";enum Status{ UNSPECIFIED=0; SUCCESS=1; FAILED=2;}message ......
go-zero zero RPC go