switch go

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+年互联 ......
指针 安全性 内存

Layer 2 Switching Basic

Layer 2 Switching Basic Repeater(中继器) BNS最早的拓扑网络方式,只能连接在两个终端。 工作原理放大信号 Hub(集线器) 集线器与中继器的区别: 中继器只能连接两个终端 集线器可连接多个终端 半双工(单向通信) 就像对讲机一样,同一时间只允许单项通讯,一方通讯完 ......
Switching Layer Basic

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

math 库中常用的数学运算和常量【GO 基础】

GO 语言的 math 库是一个内置的标准库,其中包含了许多数学函数和常量,用于计算各种数学运算和统计学计算,今天来梳理下备查。 ......
常量 常用 数学 基础 math

go基础学习

坏境 安装SDK 下载地址 windows 安装 可以直接下载安装msi 不需要配置坏境变量默认配置好了 zip 里面包含源码,但是需要配置坏境变量 liunx安装SDK wget https://dl.google.com/go/go1.20.2.linux-amd64.tar.gz tar -C ......
基础

Go项目学习(3)-cobra+viper仿SpringBoot读取配置

一开始只是想简单做一个cobra+viper的组合,做着做着因为从SpringBoot带来的习惯,想看看能不能仿制一个类似的功能,做起来貌似真的还阔以。 ......
SpringBoot 项目 cobra viper

Go - Run an application using systemd

The systemd tool fits our simple case of requiring the application to start on server boot-up as well as ensuring that the application is restarted in ......
application systemd using Run Go

Go 1.22 中的 For 循环

原文在这里。 由 David Chase and Russ Cox 发布于2023年9月19日 Go 1.21 版本包含了对 for 循环作用域的预览更改,我们计划在 Go 1.22 中发布此更改,以消除其中一种最常见的 Go 错误。 问题 如果你写过一定量的 Go 代码,你可能犯过一个错误,即在迭 ......
1.22 For Go 22

Go每日一库之19:mergo

简介 今天我们介绍一个合并结构体字段的库mergo。mergo可以在相同的结构体或map之间赋值,可以将结构体的字段赋值到map中,可以将map的值赋值给结构体的字段。感谢@thinkgos推荐。 快速使用 先安装: $ go get github.com/imdario/mergo 后使用: pa ......
mergo

go开发之基于个微的机器人开发

简要描述: 删除联系人 请求URL: http://域名地址/delContact 请求方式: POST 请求头Headers: Content-Type:application/json Authorization:login接口返回 参数: 参数名必选类型说明 wId 是 String 微信实列 ......
机器人 机器

GO 语言入门

GO 语言入门 语法基础 定义 1.批量格式 var a,b int var a int = 114514 var ( a int b string c []float32 ) type ST struct{ x int y int } i,j:=0,1 // 定义在func内才行 const e_ ......
语言 GO

VSCode安装go插件失败的解决方案

VSCode安装go插件失败的解决方案 构建Go开发环境,安装Go本身倒好说,VSCode里面安装Go插件也简单,但是,但是,当你想使用一些自动提示、代码格式化插件的时候, 就会提示缺少工具了,在VSCode里直接安装,如果成功了,那么恭喜你,如果跟我一样失败了(国内用户大概率是会失败的,原因你懂的 ......
插件 解决方案 方案 VSCode

Go - Separate external calls from our main logic

Original implementation: type SingleItem struct { Field string `json:"field"` Hour int `json:"hour"` Minute int `json:"minute"` ItemCode string `json: ......
Separate external calls logic from

VSCode - Go: Generate Unit Tests for Function

Right click the function name. Select item 'Go: Generate Unit Tests for Function' in the pop-up menu: A test file named <file name>_test.go is generat ......
Generate Function VSCode Tests Unit

Go每日一库之18:wire(依赖注入)

简介 之前的一篇文章Go 每日一库之 dig介绍了 uber 开源的依赖注入框架dig。读了这篇文章后,@overtalk推荐了 Google 开源的wire工具。所以就有了今天这篇文章,感谢推荐👍 [wire](https://github.com/google/wire)是 Google 开源 ......
wire

Go语言实现接口IP限流,黑名单&白名单的实例,都可用!

Go语言实现接口IP限流,黑名单&白名单的实例,都可用! 原创 学习与分享 Go语言圈 2023-07-18 08:30 发表于广东 收录于合集#学Go语言哪些事儿221个 MySQL大牛 带你全面剖析与系统梳理数据库(mysql等)知识分享,总结数据库技巧和方法,提升你的技术技能。 45篇原创内容 ......
实例 黑名单 接口 名单 语言

Go每日一库之17:watermill

简介 在上一篇文章Go 每日一库之 message-bus中,我们介绍了一款小巧、实现简单的异步通信库。作为学习,message-bus确实不错。但是在实际使用上,message-bus的功能就有点捉襟见肘了。例如,message-bus将消息发送到订阅者管道之后就不管了,这样如果订阅者处理压力较大 ......
watermill

2023-09-20:用go语言,保证一定是n*n的正方形,实现从里到外转圈打印的功能 如果n是奇数,中心点唯一,比如 a b c d e f g h i e是中心点,依次打印 : e f i h g

2023-09-20:用go语言,保证一定是n*n的正方形,实现从里到外转圈打印的功能 如果n是奇数,中心点唯一,比如 a b c d e f g h i e是中心点,依次打印 : e f i h g d a b c 如果n是偶数,中心点为最里层2*2的右下点 比如 a b c d e f g h ......
中心点 奇数 正方形 正方 语言

Java 21 新特性:switch的模式匹配

在之前的Java 17新特性中,我们介绍过关于JEP 406: switch的模式匹配,但当时还只是关于此内容的首个预览版本。之后在JDK 18、JDK 19、JDK 20中又都进行了更新和完善。如今,在JDK 21中,该特性得到了最终确定!下面,我们就再正式学习一下该功能! 在以往的switch语 ......
特性 模式 switch Java 21

Go每日一库之16:message-bus

简介 在一个涉及多模块交互的系统中,如果模块的交互需要手动去调用对方的方法,那么代码的耦合度就太高了。所以产生了异步消息通信。实际上,各种各样的消息队列都是基于异步消息的。不过它们大部分都有着非常复杂的设计,很多被设计成一个独立的软件来使用。今天我们介绍一个非常小巧的异步消息通信库[message- ......
message-bus message bus

Go - Study Note 1

In general, for most server applications that would be built out there—most would be written with the struct approach. One of the main reasons would b ......
Study Note Go