一道golang

golang 反射

参考 https://www.cnblogs.com/jiujuan/p/17142703.html float反射示例 package main import ( "fmt" "reflect" ) func main() { var x float64 = 1.2345 fmt.Println( ......
golang

golang Context应用举例

Context本质 golang标准库里Context实际上是一个接口(即一种编程规范、 一种约定)。 type Context interface { Deadline() (deadline time.Time, ok bool) Done() <-chan struct{} Err() err ......
Context golang

Golang method | Interfaces 示例

方法与接口(method Interface) package interFaces import ( "fmt" "log" ) // manager Appstore online account type Account struct { surName string givenName st ......
示例 Interfaces Golang method

Golang视频学习地址

GO 视频学习资料 Go编程基础: https://study.163.com/course/courseMain.htm?courseId=306002 8小时转职Golang工程师(如果你想低成本学习Go语言):https://www.bilibili.com/video/BV1gf4y1r79 ......
地址 Golang 视频

Golang 命名返回值和普通返回值

1、概述 在Go语言中,函数可以有命名返回值和普通(匿名)返回值。命名返回值会被视为定义在函数顶部的变量,并且在使用 return 语句返回时,不再必须在其后面指定参数名,也就是支持“裸”返回;而使用普通返回值时,使用 return 语句返回时,需要在其后面指定与普通返回值相同类型的参数名。 实际上 ......
Golang

golang 多生产者+多消费者模式

参考 https://gist.github.com/vitan/aedb628a40478cf8b6a33dc87a5ff52f https://gist.github.com/mochow13/74ee57078d58536929575ab481dd9693 1 package main imp ......
产者 消费者 模式 golang

Golang 的骚操作:go:linkname

背景 在看源码时,一些源码方法没有方法体,难道说明这些方法为空?例如:time.Now调用的 now(), time.Sleep , reflect.makechan // Provided by package runtime. func now() (sec int64, nsec int32, ......
linkname Golang go

golang 1.18 workspace mode

why ? 为什么需要workspace 历史发展和版本依赖的管理 GOPATH 最开始的模式 开发者需要设置一个环境变量 GOPATH,用于指定项目的工作空间。GOPATH 是一个目录路径,其中包括了三个重要的子目录:src、bin 和 pkg 通过 go get 命令,GOPATH/src 下的 ......
workspace golang 1.18 mode 18

golang 的循环导入

内容来自对 chatgpt 的咨询 循环导入概念 在Go语言中,循环导入是一个需要避免的问题。它发生在两个或更多的包彼此导入对方,形成一个导入循环,导致编译器无法处理。 例如,假设你有两个包,包A和包B。包A导入了包B,然后包B又导入了包A,这就形成了一个循环导入。在这种情况下,编译器将无法确定要首 ......
golang

golang 代码实现判断当前时间是否在"19:00"和"24:00"这两个时间范围内

代码是 chatgpt 写的 package main import ( "fmt" "time" ) func main() { now := time.Now() // 获取今天的年月日 year, month, day := now.Date() // 创建两个新的时间点,它们在今天的 19: ......
quot 时间 范围 两个 代码

golang 怎么使用接口中声明的方法

假设你有一个golang 的 interface,里面声明了1个函数,怎么调用这个函数 type Man interface { Eat(ctx context.Context, food string}) error } 使用方式 创建结构体实现这个接口声明的方法,然后创建该结构体对象,调用方法 ......
接口 方法 golang

golang 使用redis设置分布式锁 demo

内容来自对 chatgpt 的咨询 分布式锁是在多个节点上运行的应用程序中协调工作的一种常用方法,而Redis是实现分布式锁的流行选择。以下是使用Go语言和github.com/go-redis/redis库来设置Redis分布式锁的一个简单示例: 首先,确保你已经安装了该库: go get -u ......
分布式 golang redis demo

golang 对字符串进行base64编解码、md5 编码

内容来自对 chagpt 的咨询 一、对字符串进行 base64 编解码 base64 编码 要在Go语言中对字符串进行base64编码,你可以使用标准库中的encoding/base64包。以下是一个简单的示例: package main import ( "encoding/base64" "f ......
字符串 字符 编码 golang base

golang 把内容写到 csv 文件或者 xlsx 文件里

内容来自对 chatgpt 的咨询 csv 格式 csv 格式的文件使用 wps 或者 office 打开后是一个 excel 表格的形式,很容易看到表格里的数据。csv 格式跟 markdown 格式有点像,只需要按照固定的语法放置文本,保存后,用对应的渲染软件打开,就能得到想要的效果。 比如下面 ......
文件 内容 golang xlsx csv

从一个golang 员工emp数组中,找到其中name相同的元素,把结果放到一个新数组里,代码实现

内容来自对 chatgpt 的咨询 为了找到具有相同名称的员工,并将结果放入一个新的数组中,我们可以首先使用一个映射(map)来存储每个名称及其出现的次数。然后,我们可以遍历原始数组并使用映射来判断是否有重复的名称。 以下是一个示例代码,演示如何实现这一目标: package main import ......
数组 元素 员工 代码 结果

golang: 仅声明但未初始化的切片可以执行 for range 和 append 操作;仅声明但未初始化的 map,可以执行 for range 操作,但是不能执行添加元素操作

仅声明但未初始化的切片可以执行 for range 和 append 操作 你可以对一个未初始化的切片进行append和for range操作。 一个未初始化的切片的零值是nil,且其长度和容量都为0。你可以安全地使用append函数向其添加元素: var aaa []int64 aaa = app ......
range for 元素 golang append

Docker - ERROR: failed to solve: golang:latest: error getting credentials - err: exec: "docker-credential-desktop": executable file not found in $PATH, out: ``

Dockerfile: FROM golang:latest WORKDIR /app ADD . . RUN go get RUN go build -o app . CMD ["/app/app"] zzh@ZZHPC:/zdata/MyPrograms/Go/aaa$ docker build ......

Golang函数或方法传递nil值的一个坑

package t13_niu_error import ( "bytes" "fmt" "io/ioutil" "net/http" "testing" ) // 将请求获取的数据转为string,支持GET或POST请求 func BaseRequestString(requestMethod, ......
函数 方法 Golang nil

最简单的方式实现 Golang的级别日志

lo.go package lo import ( "log" "os" ) const ( TRACE int = iota DEBUG INFO WARN ERROR FATAL ) type LevelLogger struct { level int logger *log.Logger } ......
级别 方式 Golang 日志

golang 实现 socks5 正向代理服务器

socks5proxy.go package main import ( "encoding/binary" "errors" "flag" "fmt" "io" "net" "strconv" ) var port int func main() { flag.IntVar(&port, "p", ......
服务器 golang socks5 socks

玩一玩 golang 1.21 的 pgo 编译优化

作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 1.下载镜像 暂时不想替换本机的 golang 版本,于是打算在容器里编译: docker pull --platform=linux/amd64 golan ......
golang 1.21 pgo 21

GOLANG:调用delphi7编写的dll

0. delphi对winapi有很强的封装,使其更易用。 1. delphi声明dll内函数 需要尽量以此方式: procedure test(data: pchar; count: integer);stdcall; 2.golang 调用方法: str := []byte("abcdedf") ......
delphi7 GOLANG delphi dll

Golang 反射 && 单元测试

一.反射 1 package reflecttest 2 3 import ( 4 "fmt" 5 "reflect" 6 ) 7 8 // 语法:const [name] [type] = [value] 9 // const 只能修饰int\float\string\bool作为常量 10 co ......
amp 单元 Golang

golang fyne 添加系统托盘

环境:go fyne 要求:电脑右下方添加系统托盘,点击图标显示托盘菜单 效果: 实现: 1 package main 2 3 import ( 4 "fyne.io/fyne/v2" 5 "fyne.io/fyne/v2/app" 6 "fyne.io/fyne/v2/widget" 7 "fyn ......
托盘 golang 系统 fyne

golang fyne 自定义窗口、托盘图标 myApp.SetIcon(icon)

环境:go fyne 要求:更改窗口和托盘中的图标。如果添加了托盘托盘的图标也会更新 注意:更改图标的代码要在创建窗口和托盘的前面 效果: 文件位置: 实现: 1 package main 2 3 import ( 4 "fyne.io/fyne/v2" 5 "fyne.io/fyne/v2/app ......
托盘 图标 SetIcon golang myApp

golang fyne 创建两个窗口,窗口居中。点击按钮显示第二个窗口 myApp.NewWindow("new")

环境:go fyne 实现:在窗口的按钮中,点击按钮弹出第二窗口,并且窗口居中 注意:创建的第一个窗口和第二个窗口必须是通过同一个 myApp := app.New()创建出来的 效果: 实现: 1 package main 2 3 import ( 4 "fmt" 5 6 "fyne.io/fyn ......
quot NewWindow 按钮 两个 golang

golang-goroutine

常见的并发模型 1.多线程 每个线程一次处理一个请求,线程越多可并发处理的请求数就越多,但是在高并发下,多线程开销会比较大。 2.协程 无需抢占式的调度,开销小,可以有效的提高线程的并发性,从而避免了线程的缺点的部分,线程基础上的进一步抽象 3.基于异步回调的IO模型 说一个熟悉的,比如nginx使 ......
golang-goroutine goroutine golang

力扣上一道抽到英文原题现场还没写出来的easy难度的mid题

646. Maximum Length of Pair Chain 很难绷,今天去华东理工面试抽到了这个英文原题,虽然我也没写过,但是区间操作的题目大多都需要排序预处理,想到了排序预处理,也想到了第二个判断应该怎么写,第一个判断当时脑子一片空白,然后就一直卡在那,最后连最基本的思路都没说就进入了下一 ......
难度 一道 easy mid

golang项目搭建笔记-cobra

cobra介绍 GitHub地址 cobra中,一个命令主要概念为command,arguement,flag,可以理解为谓语、宾语、状语 格式为APPNAME COMMAND ARG --FLAG,例如: git clone URL --bare 项目搭建 cobra提供了非常方便的工具cobra ......
笔记 项目 golang cobra

Golang 基础语法的使用

1 package customer 2 3 import ( 4 "encoding/json" 5 "fmt" 6 "os" 7 ) 8 9 type customer struct { 10 Name string 11 Sex string 12 Age int 13 Phone strin ......
语法 基础 Golang