go-gprc gprc go

Go语言中变量初始化的所有方式

在 Go 语言中,变量的初始化可以通过以下几种方法完成: 1. 声明同时初始化: 在变量声明的同时进行初始化,可以直接指定变量的初始值。 ```go var num int = 42 var name string = "John" var isActive bool = true ``` 2. 短 ......
变量 语言 方式

Go语言中的new函数

在 Go 语言中,`new` 是一个预定义函数,用于动态分配内存,并返回一个指向该类型零值的指针。它是 Go 语言中用于在堆上分配内存的一种方式,与在栈上分配内存的方式(通过声明变量)不同。 `new` 函数的语法如下: ```go func new(Type) *Type ``` 其中,`Type ......
函数 语言 new

Go语言的Printf用法

在 Go 语言中,`Printf` 是用于格式化输出的函数,用于将数据以指定格式打印到标准输出或其他输出流。其中,`%p` 是 `Printf` 函数的一个格式化动词,用于输出指针的值。 以下是 `%p` 的详细说明以及其他常用的格式化动词: 1. `%p`: `%p` 用于格式化输出指针的值。它将 ......
语言 Printf

go刷题Leetcode,生成文件夹与go文件模板

## go生成文件夹与模板 ### 起因 以前是用C/C++刷Leetcode时,将多个C/CPP文件放在同一个目录下,没有出任何问题,但是换成Go语言刷题。 在一个目录下创建多个go文件,每个文件都是以下 ```go package main func main(){ } ``` 在vscode下 ......
文件 文件夹 Leetcode 模板

go 环境问题

国内网络访问国外资源经常会出现不稳定的情况,目前需要搭建CDN代理,目前有 # 启用 Go Modules 功能 go env -w GO111MODULE=on # 配置 GOPROXY 环境变量,以下三选一 # 1. 七牛 CDN go env -w GOPROXY=https://goprox ......
环境 问题 go

Go语言中的iface和eface

`iface` 和 `eface` 是 Go 语言中用于实现接口的两种内部数据结构。它们都用于在运行时表示接口值,但它们在处理不同类型的接口上有不同的用途和区别。 1. **iface(interface value)**: - `iface` 是用于表示具有非空接口值的数据结构。 - `iface ......
语言 iface eface

calico报错son: cannot unmarshal string into Go struct field NetConf.mtu of type int].

于是describe查看宿主机的配置文件 查看日志没有相关日志 查看calico的相关配置文件值找到 于是想着直接去修改calico的Configmap发现修改不成功 便去查询宿主机映射的calico挂载文件把标记部分的string给成int去掉双引号,然后重启calico kubectl roll ......
unmarshal NetConf calico cannot string

go build怎么使用

`go build` 是 Go 语言编译器的一个命令,用于将 Go 源代码文件编译成可执行的二进制文件。它是 Go 语言开发过程中常用的一个命令。以下是 `go build` 的基本使用方法: ``` go build [包名或文件名] ``` - 如果你在一个项目目录下执行 `go build`, ......
build go

Go defer 去掉闭包函数,靠谱吗?

在Go中使用defer时,如果defer语句包含了一个闭包函数,需要特别小心。因为defer语句会在函数返回时执行,而闭包函数可能会捕获外部变量,导致意想不到的结果。 在Go中,defer语句中的闭包函数捕获的是变量的地址,而不是变量的值。如果闭包函数在defer执行时才被调用,可能会导致捕获的变量 ......
闭包 函数 defer Go

【go语言】1.1.1 Go 语言的历史和背景

Go 语言,也被称为 Golang,是一种静态强类型、编译型的开源编程语言。Go 语言的出现是为了解决当下的软件开发问题,特别是大规模软件系统的开发。 Go 语言的设计者包括 Robert Griesemer、Rob Pike 和 Ken Thompson,他们都是在 Google 工作的资深工程师 ......
语言 背景 历史 Go

Go语言之goroutine协程详解

什么是协程? Go协程(Goroutine)是与其他函数或方法同时运行的函数或方法。可以认为Go协程是轻量级的线程。与创建线程相比,创建Go协程的成本很小。因此在Go中同时运行上千个协程是很常见的。 Go协程对比线程的优点 与线程相比,Go协程的开销非常小。Go协程的堆栈大小只有几kb,它可以根据应 ......
goroutine 语言

go语言gorm

ORM 对象关系映射(Object Relational Mapping,ORM)。指的是对象和关系之间的映射,使用面向对象的 方式操作数据库。 关系模型和Go对象之间的映射 table => struct ,表映射为结构体 row => object ,行映射为实例 column => prope ......
语言 gorm

go install 和 go get的区别

`go install` 和 `go get` 都是 Go 语言中的命令行工具,用于处理依赖关系和安装包。它们的主要区别在于功能和使用场景。 1. `go install`: - 功能:`go install` 命令用于编译并安装指定的包或可执行程序到 Go 语言的工作空间(`GOPATH`)的 ` ......
install go get

go语言mysql驱动

连接数据库是典型的CS编程,服务器端被动等待客户端建立TCP连接,并在此连接上进行特定的应用层 协议。但一般用户并不需要了解这些细节,这些都被打包到了驱动库当中,只需要简单的调用打开就可以指定协议连接到指定的数据库。 数据库的种类和产品太多,协议太多,Go官方很难提供针对不同数据库的驱动程序,往往由 ......
语言 mysql

Go-GoFiber框架

简介 中文文档 Fiber 是一个受到 Express 启发的 Web 框架,基于使用 Go 语言编写的最快的 HTTP 引擎 Fasthttp 构建。旨在通过零内存分配和高性能服务,使快速开发更加简便。 安装 go get -u github.com/gofiber/fiber/v2 packag ......
Go-GoFiber 框架 GoFiber Go

go语言试操作k8s集群

# 连接k8s k8s连接都是需要认证的 认证方式有很多种 这里采用最简单的配置文件的方式 可以重新生成配置文件 这里测试,所以,直接将master节点上的admin.conf文件拿着用 位置在 `/etc/kubernetes/admin.conf` 连接部分的代码 ```go func Test ......
集群 语言 k8s k8 8s

go-zero插件goctl-swagger的坑——第二弹

*截至本文发布,直接安装`goctl-swagger`还无法解决go-zero .api文件引入问题* 该文主要是记录在使用过程中遇到的问题和解决思路,不做详细教学使用。 ## 问题 在[go-zero插件goctl-swagger的坑](https://www.cnblogs.com/eatfis ......
goctl-swagger 插件 go-zero swagger goctl

go中格式化方法

# 将字典转换为json字符串 ```go func FormatToJson(i any) string { res, _ := json.MarshalIndent(i, "", " ") return string(res) } ``` # 将byte切片转换为json字符串 ```go fu ......
格式 方法

go 循环链表

package main import ( "fmt" ) type Node struct{ Data int Next *Node } type CircularLinkedList struct { Head *Node Tail *Node } func NewCircularLinkedL ......
go

go语言log相关

log包 Go标准库中有log包,提供了简单的日志功能。 输出 格式输出 换行输出 解释 log.Print() log.Printf() log.Println() 类似fmt.Print* log.Fatal() log.Fatalf() log.Fatalln() 相当于log.Print* ......
语言 log

go语言打包tar存档

功能介绍 + 可以多文件多文件夹混合打包 + 可以设置文件和文件夹黑白名单 + 可以打包成文件也可以打包成io.Reader类型数据 缺陷: 还是tar的特色,无法支持中文,所以中文打包会出现乱码,如果路径有中文,也无法打包文件,所以打包的文件或者文件夹尽量不要有中文 (有解决方法还请留言不吝指教, ......
语言 tar

windows 下 用go 监控进程

这里模拟QQ退出后自动重启 只要修改 processName 为你所需要的进程exe processNamePath 为你所需要的进程路径 package main import ( "bytes" "errors" "fmt" "os" "os/exec" "regexp" "strconv" " ......
进程 windows

Go:Missing type in composite literal

在使用含字符串数组的结构体时,我出现了以下问题 1 package main 2 3 import "github.com/gin-gonic/gin" 4 5 type MyJson struct { 6 Functions []string `json:"functions"` 7 Desc s ......
composite Missing literal type Go

个人随笔 —— 基于 go 语言实现的轻量化 workflow 分布式引擎插件

# 背景 组内有很多项目都涉及复杂的任务流场景: * 集群创建、删除等生命周期管理 * k8s 资源申请销毁 * .... 这些场景都有几个共同的特点: 1. 流程耗时且步骤复杂,需要几十步操作,其中包含云资源申请、脚本执行、接口调用等,且相互存在依赖关系。 2. 任务量随着业务增长而快速迭代,比如 ......
分布式 插件 workflow 随笔 语言

GO语言配置管理神器-Viper中文教程

[Viper](https://github.com/spf13/viper)是适用于Go应用程序的完整配置解决方案。它被设计用于在应用程序中工作,并且可以处理所有类型的配置需求和格式。 # Viper [Viper](https://github.com/spf13/viper)是适用于Go应用程 ......
神器 语言 教程 Viper

go语言包管理

包 包由多个文件和目录组成 使用 package <包名> 来定义包名 包名一般都采用小写,符合标识符要求 当前目录名和 package <包名> 中的包名不需要一致,但最好保持一致 同级文件归属一个包,就是说每个包目录的当前目录中,只能统一使用同一个package的包名,否则编译出错 一般来说,开 ......
语言

go 结构体嵌套interface

package main import "fmt" //结构体嵌套接口,可以在结构体绑定的方法直接实现接口中的方法,直接调用接口中的方法 type aa interface{ a() b() } type world struct{ aa Age int } func(h world)a(){ fm ......
interface 结构 go

大白话讲讲 Go 语言的 sync.Map(二)

上一篇文章 [《大白话讲讲 Go 语言的 sync.Map(一)》](https://imlht.com/archives/234/) 讲到 entry 数据结构,原因是 Go 语言标准库的 map 不是线程安全的,通过加一层抽象回避这个问题。 当一个 key 被删除的时候,比如李四销户了,以前要撕 ......
大白话 大白 语言 sync Map

代码随想录 go语言

**Go的内存对齐:** 64位系统一般指的是寻址的大小,用2^64个地址,每个地址上面都有一个字大小的内存,一个字可以是1字节,2字节,4字节等等。CPU 始终以字长访问内存,如果一个变量存储在两个字中,那么CPU就需要寻址两次。所以内存对齐就是让变量尽量不要跨字存储。 ......
随想录 随想 语言 代码

go-2

1.对Go的理解 它是一种编译型,并发型,拥有GC的编程。它不是面向对象语言,不具备封装,继承和多态,但是可以实现,通过interfance{}接口来实现多态性。 没有做异常处理,不能像java一样try...catch...,但是可以通过panic,defer和recover来处理。 其他语言的函 ......
go