const go

Go - Proverb: Accept interfaces, return structs

fake.go package fake import "fmt" type ExampleStruct struct { Item1 string Item2 string Item3 string } func (e ExampleStruct) LogLine() { fmt.Printf(" ......
interfaces Proverb structs Accept return

GO 中的时间操作(time & dateparse)【GO 基础】

〇、前言 日常开发过程中,对于时间的操作可谓是无处不在,但是想实现时间自由还是不简单的,多种时间格式容易混淆,那么本文将进行梳理,一起学习下。 官方提供的库是 time,功能很全面,本文也会详细介绍。 还有另外一个开源库 dateparse,使用起来比较方便,本文也会将加入示例测试出结果,以展示其优 ......
dateparse 时间 基础 time amp

Go每日一库之14:dig

简介 今天我们来介绍 Go 语言的一个依赖注入(DI)库——dig。dig 是 uber 开源的库。Java 依赖注入的库有很多,相信即使不是做 Java 开发的童鞋也听过大名鼎鼎的 Spring。相比庞大的 Spring,dig 很小巧,实现和使用都比较简洁。 快速使用 第三方库需要先安装,由于我 ......
dig

Go - Fibonacci

fibonacci.go package algorithms // Dynamic Programming func Fibonacci1(n int) int { if n <= 0 { return 0 } if n <= 2 { return 1 } previous1 := 1 previ ......
Fibonacci Go

Go每日一库之13:email

简介 程序中时常有发送邮件的需求。有异常情况了需要通知管理员和负责人,用户下单后可能需要通知订单信息,电商平台、中国移动和联通都有每月账单,这些都可以通过邮件来推送。还有我们平时收到的垃圾邮件大都也是通过这种方式发送的😭。那么如何在 Go 语言发送邮件?本文我们介绍一下email库的使用。 快速使 ......
email

Go比Python快多少倍?请看一个简单的例子

需求 两个0-10000的数组,循环遍历两个数组,获取两个元素,打印出乘积为56213的所有元素 Python实现 import datetime s = datetime.datetime.now() for i in range(10000): for j in range(10000): if ......
请看 例子 Python

Windows和Linux下通过go实现自删除

自删除在攻防中都挺常见的,自写远控通常也有需要。可是在度娘里搜不到什么办法,于是就查查Windows api学习记录一回。 linux 先获得当前程序的文件名,再使用syscall这个包中的Unlink调用系统来删除一个目录或者文件的链接,链接没了也就删除完成了。 fileName, _ := os ......
Windows Linux

go知名第三方包ssdb

因为beego中cache模块中使用了ssdb,所以准备学习下ssdb (1)ssdb简介 (2)ssdb的基本操作 (3)gossdb怎么使用? 1、ssdb简介 SSDB 是一个 C/C++ 语言开发的高性能 NoSQL 数据库, 支持 KV, list, map(hash), zset(sor ......
第三方 ssdb

Go每日一库之12:carbon(日期和时间)

简介 一线开发人员每天都要使用日期和时间相关的功能,各种定时器,活动时间处理等。标准库time使用起来不太灵活,特别是日期时间的创建和运算。carbon库是一个时间扩展库,基于 PHP 的carbon库编写。提供易于使用的接口。本文就来介绍一下这个库。 快速使用 第三方库需要先安装: $ go ge ......
日期 时间 carbon

Go - Merge Sort

MergeSort.go package main func MergeSort(items []int) []int { n := len(items) var combined []int switch { case n <= 1: combined = items case n == 2: i ......
Merge Sort Go

Go基础语法

1.结构 package main // 声明 main 包,表明当前是一个可执行程序 import "fmt" // 导入内置 fmt func main(){ // main函数,是程序执行的入口 fmt.Println("Hello World!") // 在终端打印 Hello World! ......
语法 基础

Go语言实现多态

1. 什么是多态多态是指根据类型的具体实现采取不同行为的能力。如果某个类型实现了某个接口,那么所有使用这个接口的地方,都可以支持这种类型的值。即不同的数据类型的实体实现提供统一的接口。Go中没有类的概念,它的多态是靠接口来实现的。 2. 在Go中的实现先定义一个抽象的接口,这个接口规定了结构体应当实 ......
语言

Go语言连不上 Mysql

1.dial tcp 127.0.0.1:3306: connect: connection refused 因为 mysql安装时,的配置有一个关闭网络连接,所以连不上 文件在 /etc/my.cnf.d/mariadb-server.cnf 把这信skip-networking注释了即可 [my ......
语言 Mysql

2023-09-16:用go语言,给你一个整数 n 和一个在范围 [0, n - 1] 以内的整数 p , 它们表示一个长度为 n 且下标从 0 开始的数组 arr , 数组中除了下标为 p 处是 1

2023-09-16:用go语言,给你一个整数 n 和一个在范围 [0, n - 1] 以内的整数 p , 它们表示一个长度为 n 且下标从 0 开始的数组 arr , 数组中除了下标为 p 处是 1 以外,其他所有数都是 0 。 同时给你一个整数数组 banned ,它包含数组中的一些位置。 ba ......
下标 整数 数组 长度 范围

Go学习笔记

这几天在学Go,记录一下一些困惑和理解 channel特性 查阅的资料: Go语言channel探究_go 多个协程读一个channel_JE_Xie的博客-CSDN博客 Go 中的 channel 解析— Go 中的并发性 - 知乎 (zhihu.com) Go中的channel_go chann ......
笔记

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 ......
语言基础 函数 语言 基础