golang demo grpc
Go每日一库之99:go-grpc-middleware
grpc的中间件以及中间件库有很多,[go-grpc-middleware](https://github.com/grpc-ecosystem/go-grpc-middleware)应该是其中应用最广泛,本文主要介绍其中的grpc_zap、grpc_auth和grpc_recovery中间件。 # ......
golang-select
select的作用 golang 中的 select 就是用来监听和 channel 有关的 IO 操作,当 IO 操作发生时,触发相应的动作。select 只能应用于 channel 的操作,既可以用于 channel 的数据接收,也可以用于 channel 的数据发送。如果 select 的多个 ......
golang之命令行工具Cobra
github地址: https://github.com/spf13/cobra [安装] go get -u github.com/spf13/cobra@latest 使用cobra_cli工具 go install github.com/spf13/cobra-cli@latest [使用] ......
golang-channel
什么是 channel 管道 channel 是 goroutine 与 goroutine 之间通信的重要桥梁 channel 是一个通道,用于端到端的数据传输,这有点像我们平常使用的消息队列,只不过 channel 的发送方和接受方是 goroutine 对象,属于内存级别的通信。 这里涉及到了 ......
在windows10上安装多个golang
在windows10上安装多个golang # 原理 下载不同go版本,然后重命名go可执行文件,然后配置环境变量,不同命令使用不同的版本。 其实所有的开发环境都可以这么使用。比如python2,python3 # 方法 问的[文心一言](https://yiyan.baidu.com/),哈哈哈哈 ......
golang-waitgroup
说明 golang通过waitgroup来实现并发控制,用法跟java的CountDownLatch 效果一样 WaitGroup 的使用场景和方法 我们通过goroutine运行一个或者一组任务,需要关心这组任务执行完了进行通知 WaitGroup 如同它的字面意思,就是等待一组 goroutin ......
一个思路:实现 golang 中的 `__file__` `__line__` 宏
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 测试 zaplog 发现,开启 caller 的调用,会使整个服务增加 2% 的损耗。 其实文件及其行号完全可以在编译期加上去,没必要带来运行期的性能损耗。 ......
springboot 导入多个模块 模块是灰色的并且启动不了 启动报错(Warning: No JDK specified for module 'demo')
从git上面把下面拉下拉 是这个样子 模块都是灰色的 而且启动不了 然后你添加启动 添加之后还是报错 报错信息是找不到这个项目的启动模块 解决方法: ......
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 Context应用举例
Context本质 golang标准库里Context实际上是一个接口(即一种编程规范、 一种约定)。 type Context interface { Deadline() (deadline time.Time, ok bool) Done() <-chan struct{} Err() err ......
Golang method | Interfaces 示例
方法与接口(method Interface) package interFaces import ( "fmt" "log" ) // manager Appstore online account type Account struct { surName string givenName st ......
Golang视频学习地址
GO 视频学习资料 Go编程基础: https://study.163.com/course/courseMain.htm?courseId=306002 8小时转职Golang工程师(如果你想低成本学习Go语言):https://www.bilibili.com/video/BV1gf4y1r79 ......
Golang 命名返回值和普通返回值
1、概述 在Go语言中,函数可以有命名返回值和普通(匿名)返回值。命名返回值会被视为定义在函数顶部的变量,并且在使用 return 语句返回时,不再必须在其后面指定参数名,也就是支持“裸”返回;而使用普通返回值时,使用 return 语句返回时,需要在其后面指定与普通返回值相同类型的参数名。 实际上 ......
golang 多生产者+多消费者模式
参考 https://gist.github.com/vitan/aedb628a40478cf8b6a33dc87a5ff52f https://gist.github.com/mochow13/74ee57078d58536929575ab481dd9693 1 package main imp ......
山海鲸智慧交通解决方案demo——构建未来城市出行的数字蓝图
随着城市化进程的不断加速,城市交通问题也变得日益严重。为了改善城市交通体验、提高出行效率以及减少交通拥堵和环境污染。
山海鲸可视化打造城市智慧交通系列解决方案模板,解决方案以“数字孪生技术”为核心,通过数据分析、人工智能和物联网技术来优化城市出行 ......
element-plus 表单验证demo
<template> <div class="container my-4 mx-auto p-4"> <el-radio-group v-model="labelPosition" label="label position"> <el-radio-button label="left">Left ......
Golang 的骚操作:go:linkname
背景 在看源码时,一些源码方法没有方法体,难道说明这些方法为空?例如:time.Now调用的 now(), time.Sleep , reflect.makechan // Provided by package runtime. func now() (sec int64, nsec int32, ......
golang 1.18 workspace mode
why ? 为什么需要workspace 历史发展和版本依赖的管理 GOPATH 最开始的模式 开发者需要设置一个环境变量 GOPATH,用于指定项目的工作空间。GOPATH 是一个目录路径,其中包括了三个重要的子目录:src、bin 和 pkg 通过 go get 命令,GOPATH/src 下的 ......
Rust+appium App自动化测试demo
1.新建工程 打开RustCover,新建工程如下: 修改Cargo.toml文件如下: [package] name = "test_demo" version = "0.1.0" edition = "2021" # See more keys and their definitions at ......
Vs2022 开发Grpc
使用VS2022开发遇到了不少坑,记录一下 VS貌似没有类似WebService添加接口的模板,需要手动添加.proto文件,而且.proto文件,也没有对应模板,需要添加一个文本文件,改成需要的名字 添加完.proto文件,需要用Grpc.Tools编译生成对应所需的文件,使用dotnet add ......
golang 的循环导入
内容来自对 chatgpt 的咨询 循环导入概念 在Go语言中,循环导入是一个需要避免的问题。它发生在两个或更多的包彼此导入对方,形成一个导入循环,导致编译器无法处理。 例如,假设你有两个包,包A和包B。包A导入了包B,然后包B又导入了包A,这就形成了一个循环导入。在这种情况下,编译器将无法确定要首 ......
golang 代码实现判断当前时间是否在"19:00"和"24:00"这两个时间范围内
代码是 chatgpt 写的 package main import ( "fmt" "time" ) func main() { now := time.Now() // 获取今天的年月日 year, month, day := now.Date() // 创建两个新的时间点,它们在今天的 19: ......
golang 怎么使用接口中声明的方法
假设你有一个golang 的 interface,里面声明了1个函数,怎么调用这个函数 type Man interface { Eat(ctx context.Context, food string}) error } 使用方式 创建结构体实现这个接口声明的方法,然后创建该结构体对象,调用方法 ......
golang 使用redis设置分布式锁 demo
内容来自对 chatgpt 的咨询 分布式锁是在多个节点上运行的应用程序中协调工作的一种常用方法,而Redis是实现分布式锁的流行选择。以下是使用Go语言和github.com/go-redis/redis库来设置Redis分布式锁的一个简单示例: 首先,确保你已经安装了该库: go get -u ......
golang 对字符串进行base64编解码、md5 编码
内容来自对 chagpt 的咨询 一、对字符串进行 base64 编解码 base64 编码 要在Go语言中对字符串进行base64编码,你可以使用标准库中的encoding/base64包。以下是一个简单的示例: package main import ( "encoding/base64" "f ......
golang 把内容写到 csv 文件或者 xlsx 文件里
内容来自对 chatgpt 的咨询 csv 格式 csv 格式的文件使用 wps 或者 office 打开后是一个 excel 表格的形式,很容易看到表格里的数据。csv 格式跟 markdown 格式有点像,只需要按照固定的语法放置文本,保存后,用对应的渲染软件打开,就能得到想要的效果。 比如下面 ......
从一个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 ......
运行 Knative Serving demo 应用
创建 ns # kubectl create ns knative-demo namespace/knative-demo created 创建应用 hello-world.yaml apiVersion: serving.knative.dev/v1 kind: Service metadata: ......
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 ......