melody go

Go - receiving from an empty channel

package main import ( "fmt" "sync" "time" ) var workers = 3 func processItem(input <-chan int, output chan<- int, wg *sync.WaitGroup) { for { fmt.Prin ......
receiving channel empty from Go

Go - ERROR: fatal error: all goroutines are asleep - deadlock!

main.go: package main import "fmt" func main() { ch := make(chan int) ch <- 1 a := <-ch fmt.Println(a) } Got error: zzh@ZZHPC:/zdata/MyPrograms/Go/tes ......
goroutines deadlock asleep ERROR fatal

2023-09-27:用go语言,在一个 n x n 的国际象棋棋盘上,一个骑士从单元格 (row, column) 开始, 并尝试进行 k 次移动。行和列是 从 0 开始 的,所以左上单元格是 (0

2023-09-27:用go语言,在一个 n x n 的国际象棋棋盘上,一个骑士从单元格 (row, column) 开始, 并尝试进行 k 次移动。行和列是 从 0 开始 的,所以左上单元格是 (0,0), 右下单元格是 (n - 1, n - 1),象棋骑士有8种可能的走法, 每次移动在基本方向 ......
单元 国际象棋 棋盘 象棋 骑士

Go - Live reload of configurations

main.go: package main import ( "encoding/json" "fmt" "log" "os" "time" "github.com/fsnotify/fsnotify" ) type config struct { Name string `json:"name"` ......
configurations reload Live Go of

简化 Go 开发:使用强大的工具提高生产力

作为 Go 开发人员,应该都知道维持简洁高效开发工作流程的重要性。为了提高工作效率和代码质量,简化开发流程并自动执行重复性任务至关重要。在本文中,我们将探讨一些强大的工具和技术,它们将简化 Go 开发过程,助力您的编码之旅。 Cookiecutter:使用一致的模板快速启动项目 问题描述 从头开始创 ......
生产力 工具 Go

Go每日一库之25:sjson

简介 在上一篇文章中我们介绍了如何使用gjson快速读取 JSON 串中的值。为了内容的完整性,今天我们介绍一下如何使用sjson快速设置 JSON 串中的值。 快速使用 先安装: $ go get github.com/tidwall/sjson 后使用: package main import ......
sjson

Go - Using channels to receive interrupts in a program

Within the Kubernetes deployment environment, applications will actually be sent the SIGTERM signal first if it has been decided the pod holding the a ......
interrupts channels receive program Using

uber go code 规范(规范)

前言 从接触 Golang 到现在, 感觉到的很深的一点是, go 的代码无论是大佬还是菜鸟写出的代码, 都有着大体统一的 格式/流程, 这也是 Go 被开发者喜爱的一个原因, 但是还有一些, 比如变量的命名方式等, 可以称之为 风格 的东西, 却不尽相同, 我在开发中, 其实也希望有一个相对权威的 ......
uber code go

Go每日一库之24:gjson

简介 之前我们介绍过gojsonq,可以方便地从一个 JSON 串中读取值。同时它也支持各种查询、汇总统计等功能。今天我们再介绍一个类似的库gjson。在上一篇文章Go 每日一库之 buntdb中我们介绍过 JSON 索引,内部实现其实就是使用gjson这个库。gjson实际上是get + json ......
gjson

[Go 夜读 第 148 期] Excelize 构建 WebAssembly 版本跨语言支持实践

本期分享将对 Excelize 的 2023 年部分更新背后的技术点、Go 1.21.0 版本中 XML 标准库的兼容性问题,以及如何构建 WebAssembly 版本跨语言支持展开讨论。 ......
WebAssembly Excelize 版本 语言 148

成为 Go 高手的 8 个 GitHub 开源项目

想成为 Go 高手吗?那推荐看看这些开源项目 Go 从 2009 年开始正式对外公布,随着时间的推移,Go 在当前的编程语言中占有良好的地位,在 WEB 领域、云原生领域、底层服务领域都有广泛的应用。Go 是一门相对年轻的语言,具有 C/C++ 等编译语言的性能和安全性,同时也具有良好的开发速度。本 ......
高手 项目 GitHub Go

Go每日一库之23:buntdb

简介 buntdb是一个完全用 Go 语言编写的内存键值数据库。它支持 ACID、并发读、自定义索引和空间信息数据。buntdb只用一个源码文件就实现了这些功能,对于想要学习数据库底层知识的童鞋更是不容错过。 感谢@kiyonlin推荐! 快速使用 先安装: $ go get github.com/ ......
buntdb

R语言多元(多变量)GARCH :GO-GARCH、BEKK、DCC-GARCH和CCC-GARCH模型和可视化|附代码数据

全文链接:http://tecdat.cn/?p=30647 最近我们被客户要求撰写关于GARCH 的研究报告,包括一些图形和统计输出。 从Engle在1982发表自回归条件异方差(ARCH)模型的论文以来,金融时间序列数据的波动性就倍受关注。同时,近几年又出现了研究股票市场的波动传递性 多市场的多 ......
GARCH 变量 DCC-GARCH CCC-GARCH GO-GARCH

24、Go语言中的OOP思想

1、是什么? OOP:面向对象 Go语言的解构体嵌套 1、模拟集成性:is - a type A struct { field } type B struct { A // 匿名字段 } 这种方式就会存在变量提升 2、模拟聚合关系:has - a type C struct { field } ty ......
语言 思想 OOP

Go - directives

After creating sql files under directory migrations, the above error disappeared: ......
directives Go

Go每日一库之22:go-cmp

简介 我们时常有比较两个值是否相等的需求,最直接的方式就是使用==操作符,其实==的细节远比你想象的多,我在深入理解 Go 之==中有详细介绍,有兴趣去看看。但是直接用==,一个最明显的弊端就是对于指针,只有两个指针指向同一个对象时,它们才相等,不能进行递归比较。为此,reflect包提供了一个De ......
go-cmp cmp go

Go-env

如何判断 go 已经在windows上安装好 要检查您的Windows计算机上是否已经安装了Go编程语言,可以按照以下步骤进行操作: 打开命令提示符:在Windows搜索栏中输入“cmd”,然后单击“命令提示符”应用程序。 在命令提示符中键入以下命令: 复制代码 go version 如果您已经成功 ......
Go-env env Go

go之gorm 框架

go.gorm 使用 GORM是一个Go语言的ORM库,用于简化数据库操作。它支持MySQL、PostgreSQL、SQLite和SQL Server等多种数据库,并提供了丰富的API,使得我们可以很方便地进行增删改查等操作。 本文将介绍如何在GO中使用gorm,并提供一些示例代码。 安装gorm ......
框架 gorm

Go开发pb

pb开发-proto文件 以及 PB在 go项目中的开发过程 以下是一个简单的示例,演示如何在Go项目中使用PB进行开发: 编写Proto文件 假设我们要开发一个简单的分布式计算系统。首先,我们需要编写一个Proto文件来定义请求和响应消息类型以及服务接口。以下是一个示例: 复制代码 syntax ......

Go 项目的 MAKE 工具

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

Go-base知识点

go的基本东西 FPM进程 master,worker Gpm 协程和线程的联系 协程是GO的核心 Go module go.mod Go 的常用命令 Go run Go build Go 的基本语法 Struct Func 指针方法,非指针方法 大写public,小写 private 作用域 放同 ......
知识点 Go-base 知识 base Go

Golang 的骚操作:go:linkname

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

go 定义类型

定义变量方式 定义变量时需要注意 在最外层一定要使用var 的方式定义变量不能使用 ':='的方式,只有在func 里面可以使用':=' 定义变量 var( str string = "holle" sum int = 1 enable bool = false ) func test1(){ va ......
类型 go

每日一库:使用Viper处理Go应用程序的配置

在开发Go应用程序时,处理配置是一个常见的需求。配置可能来自于配置文件、环境变量、命令行参数等等。Viper是一个强大的库,可以帮助我们处理这些配置。 什么是Viper? Viper是一个应用程序配置解决方案,用于Go应用程序。它支持JSON、TOML、YAML、HCL、envfile和Java p ......
应用程序 程序 Viper

Go每日一库之21:jennifer

简介 今天我们介绍一个 Go 代码生成库jennifer。jennifer支持所有的 Go 语法和特性,可以用它来生成任何 Go 语言代码。 感谢kiyonlin的推荐! 快速使用 先安装: $ go get github.com/dave/jennifer 今天我们换个思路来介绍jennifer这 ......
jennifer

基于go语言gin框架的web项目骨架

该骨架每个组件之间可单独使用,组件之间松耦合,高内聚,组件的实现基于其他三方依赖包的封装。 目前该骨架实现了大多数的组件,比如事件,中间件,日志,配置,参数验证,命令行,定时任务等功能,目前可以满足大多数开发需求,后续会持续维护更新功能。 github地址:https://github.com/cz ......
骨架 框架 语言 项目 gin

Go指针探秘:深入理解内存与安全性

Go指针为程序员提供了对内存的深入管理能力,同时确保了代码的安全性。本文深入探讨了Go指针的基础概念、操作、深层理解及其特性与限制。通过深入了解其设计哲学和应用,我们可以更好地利用Go的强大功能。 关注公众号【TechLeadCloud】,分享互联网架构、云服务技术的全维度知识。作者拥有10+年互联 ......
指针 安全性 内存

go 反射

一. go 反射介绍和定义 在Go语言中,反射机制是一种动态获取变量类型和值信息的机制,它可以让程序在运行时动态地获取对象的类型信息、调用对象的方法、修改对象的属性等。通过反射机制,Go程序可以更加灵活和可扩展,但同时也会带来一些性能开销和复杂度。 在Go语言中,反射机制主要由标准库中的reflec ......
go

2023-09-23:用go语言,假设每一次获得随机数的时候,这个数字大于100的概率是P。 尝试N次,其中大于100的次数在A次~B次之间的概率是多少? 0 < P < 1, P是double类型,

2023-09-23:用go语言,假设每一次获得随机数的时候,这个数字大于100的概率是P。 尝试N次,其中大于100的次数在A次~B次之间的概率是多少? 0 < P < 1, P是double类型, 1 <= A <= B <= N <= 100。 来自左程云。 答案2023-09-23: 首先, ......
概率 随机数 100 次数 语言

Go每日一库之20:copier

简介 上一篇文章介绍了mergo库的使用,mergo是用来给结构体或map赋值的。mergo有一个明显的不足——它只能处理相同类型的结构!如果类型不同,即使字段名和类型完全相同,mergo也无能为力。今天我们要介绍的copier库就能处理不同类型之间的赋值。除此之外,copier还能: 调用同名方法 ......
copier