melody go

Go 语言中闭包与defer

匿名函数: 没有函数名的函数就是匿名函数 匿名函数的定义格式如下: func(参数)(返回值){ 函数体 } 基本使用: func main() { // 将匿名函数保存到变量 add := func(x, y int) { fmt.Println(x + y) } add(10, 20) // 通 ......
闭包 语言 defer Go

PGO in Go 1.21

原文在这里。 由 Michael Pratt 发布于 2023年9月5日 在2023年早些时候,Go 1.20发布了供用户测试的概要版本的基于性能分析的优化(PGO)。经过解决预览版已知的限制,并得益于社区反馈和贡献的进一步改进,Go 1.21中的PGO支持已经准备好供一般生产使用!请查阅性能分析优 ......
1.21 PGO Go 21 in

Go - ERROR: # command-line-arguments undefined

zzh@ZZHPC:/zdata/MyPrograms/Go/aaa/Ch05/05_04$ go run httpd.go# command-line-arguments./httpd.go:15:9: undefined: DB./httpd.go:58:16: undefined: NewDB ......

Go Struct

结构体(简称struct)用于创建不同数据类型的成员集合,放入一个单一的变量中。虽然数组用于将相同数据类型的多个值存储在单一变量中,但结构体用于将不同数据类型的多个值存储在单一变量中。结构体对于将数据组合在一起以创建记录非常有用。 声明结构体 要在Go中声明一个结构体,请使用type和struct关 ......
Struct Go

Go每日一库之2:go-flags

## 简介 在[上一篇文章](https://go-quiz.github.io/2020/01/07/godailylib/flag/)中,我们介绍了`flag`库。`flag`库是用于解析命令行选项的。但是`flag`有几个缺点: - 不显示支持短选项。当然上一篇文章中也提到过可以通过将两个选项 ......
go-flags flags go

GO 每日一库之1:flag

## 缘起 我一直在想,有什么方式可以让人比较轻易地保持每日学习,持续输出的状态。写博客是一种方式,但不是每天都有想写的,值得写的东西。 有时候一个技术比较复杂,写博客的时候经常会写着写着发现自己的理解有偏差,或者细节还没有完全掌握,要去查资料,了解了之后又继续写,如此反复。 这样会导致一篇博客的耗 ......
flag GO

Python 中各个框架的性能对比(Flask,tornado,fastAPI)对比 Go 的gin框架

使用jmeter进行压测: 配置如下: Flask 框架: Python代码: from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, World!' if __n ......
框架 性能 tornado fastAPI Python

Go语言中如何实现NoCopy

Go语言中没有NoCopy关键字,但可以通过实现`sync.Locker`接口来禁止某个类型的变量被拷贝。 `sync.Locker`接口定义了`Lock()`和`Unlock()`方法,这两个方法用于保护共享数据的互斥访问。如果一个类型实现了`sync.Locker`接口,则该类型的变量不能被拷贝 ......
语言 NoCopy

go os.arges用法

package mainimport ( "fmt" "io" "net/http" "os")// init 在 main 函数之前调用func init() { if len(os.Args) != 2 { fmt.Println("Usage: ./example2 <url>") os.E ......
arges go os

Go学习笔记3

# 九、错误处理 ## 1.defer+recover机制处理异常错误 展示错误: 发现:程序中出现错误/恐慌以后,程序被中断,无法继续执行。 **错误处理/捕获机制:** 内置函数recover: ## 2.自定义错误 需要调用errors包下的New函数:函数返回error类型 ## 3.pan ......
笔记

Go语言反单引号创建原始字符串raw_string

在 Go 语言中,反引号(`)用于创建原始字符串字面量(raw string literals)。原始字符串字面量是不包含转义序列的字符串,其中的内容会保持原样,包括换行符和特殊字符。 反引号的主要用途之一是编写多行的文本或正则表达式,而不需要使用转义字符。这在处理包含大量特殊字符或格式化要求的文本 ......
引号 字符串 raw_string 字符 语言

2023-09-07:用go语言编写。塔子哥最近在处理一些字符串相关的任务 他喜欢 R 字符,因为在某些任务中,这个字符通常表示“正确”的结果 另一方面,他不喜欢 B 字符,因为在某些任务中,这个字符

2023-09-07:用go语言编写。塔子哥最近在处理一些字符串相关的任务 他喜欢 R 字符,因为在某些任务中,这个字符通常表示“正确”的结果 另一方面,他不喜欢 B 字符,因为在某些任务中,这个字符通常表示“错误”的结果 为了解决他的任务,塔子哥定义了字符串的权值为字符串中 R 字符的出现次数 例 ......
字符 任务 字符串 另一方面 语言

go101自定义泛型翻译——First Look of Custom Generics(上)

## 初识自定义泛型 1. 在自定义泛型的世界中。可能会与被定义成泛型类型的类型,泛型函数的函数。此外泛型类型也是会被定义成类型的,所有它们也可能会有相应的方法。 2. 关于泛型类型,泛型函数以及相应的方法的定义都会包含一种称为类型参数列表的部分,这是与普通方法函数以及方法最大的不同之处。 ### ......
Generics Custom First Look 101

Go 函数

函数是一组语句,可以在程序中重复使用。函数不会在页面加载时自动执行。函数将通过调用函数来执行。 ### 创建函数 要创建(通常称为声明)一个函数,请执行以下操作: - 使用 `func` 关键字。 - 指定函数的名称,后跟括号 `()`。 - 最后,在花括号 `{}` 内添加定义函数应执行的代码。 ......
函数 Go

go并发编程系列七:使用goroutine写一个线程池

TRANSLATE with x English Arabic Hebrew Polish Bulgarian Hindi Portuguese Catalan Hmong Daw Romanian Chinese Simplified Hungarian Russian Chinese Tradi ......
线程 goroutine

Go如何使用 Context 控制并发

Go如何使用 Context 控制并发 原创 萧瑟 golang面试经典讲解 2023-06-30 20:00 发表于上海 收录于合集 #go语言25个 #go25个 ##go工具23个 #面试54个 关于context的面试题还是比较多,发现context控制并发这块的面试最近出现的频率非常高,所 ......
Context

go-spew最强大的调试工具

go-spew golang最强大的调试助手,没有之一 2017-06-091758 举报版权 nkbai +关注 简介: go内置的fmt.sprintf已经很强大了,但是和spew比起来还是相形见绌,这里来一个例子. import ( "fmt" "github.com/davecgh/go-s ......
go-spew 工具 spew go

Go语言中互斥锁的最佳实践

使用互斥锁是确保多个goroutine之间共享数据安全访问的一种常见方式。以下是互斥锁的最佳实践: 1. **仅在必要时使用互斥锁**:互斥锁的目的是保护共享资源,但不是所有变量都需要被互斥锁保护。只有在多个goroutine并发访问的数据结构或变量上使用互斥锁,以避免不必要的锁定。 2. **小范 ......
语言

使用GO 程序指定IP地址访问 http/https 地址 类似curl --resolve XXXIP:PortYYY

需求,使用GO 程序指定IP地址访问 http/https 地址 传入参数: ipAddr // ipv4地址 string值serviceUrl // url地址 string值hostContainPort // Host Header 是否带url的端口 bool值 返回值: response ......
地址 PortYYY resolve 程序 XXXIP

Go语言中的闭包

在 Go 语言中,匿名函数和闭包是两个相关但略有区别的概念: 1. **匿名函数**:如其名,是没有名字的函数。你可以将它赋值给变量或直接调用它。 ```go func() { fmt.Println("I'm an anonymous function!") }() ``` 2. **闭包**:是 ......
闭包 语言

Go添加自定义操作符<等符号?

不,Go 语言不支持自定义操作符或重载内置操作符的行为,与 C++ 的 `operator` 重载不同。Go 的设计者们故意避免了操作符重载以保持语言的简单性。 但是,你可以为你的自定义 `struct` 定义方法来实现类似的功能,只不过这些方法不会使用操作符的语法。 例如,假设你有一个 `Vect ......
操作符 符号 lt

Go 语言内置类型全解析:从布尔到字符串的全维度探究

> 关注微信公众号【TechLeadCloud】,分享互联网架构、云服务技术的全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。 > 本文深入探讨了 Go 语言的内 ......
维度 布尔 字符串 字符 语言

Go学习笔记2

复杂数据类型,运算符(算数、赋值、关系、逻辑、优先级),流程控制(if、switch、for、break、continue),函数(包,匿名函数,内置函数) ......
笔记

Go 程序编译为二进制文件与配置文件路径不匹配问题

当将 Go 程序编译为二进制文件并在服务器上运行时,可能会遇到配置文件路径不匹配的问题。在本篇博客中,我将介绍两种解决方法。 方法一:指定配置文件的绝对路径 在服务器上运行二进制文件时,通过命令行参数或环境变量传递配置文件的绝对路径,而不是依赖于相对路径。这样可以确保程序能够正确找到配置文件。 例如 ......
文件 译为 二进制 路径 程序

VScode配置go并编译gogs管理平台

# VScode配置go并编译gogs管理平台 ## VScode 配置go扩展 1,打开VScode,在扩展中搜索go插件,并安装。 ![Alt text](https://img2023.cnblogs.com/blog/469361/202309/469361-2023090622215341 ......
VScode 平台 gogs

Go 循环

for循环用于多次执行特定的代码块,每次都可以使用不同的值。每次循环执行都称为一次迭代。for循环可以包含最多三个语句: 语法 ```Go for 语句1; 语句2; 语句3 { // 每次迭代要执行的代码 } ``` - 语句1:初始化循环计数器的值。 - 语句2:对每次循环迭代进行评估。如果评估 ......
Go

Go学习笔记

### Go语言基础1 #### 简介 - Go语言特点 1. 高性能、高并发 2. 语法简单、学习曲线平缓 ```go //创建一个静态文件服务器 package main import ( "net/http" ) func main(){ http.Handle("/",http.FileSe ......
笔记

C、java、go以及python语言打印九九乘法表

[toc] ### 后续会更新其他语言 #### C语言 ```c #include int main() { for(int row = 1; row <= 9;row++){ for(int col = 1; col <= row;col++){ printf("%d x %d = %2d\t" ......
乘法表 乘法 语言 python java

go程序在mac下的交叉编译

## 主页 - 微信公众号:密码应用技术实战 - 博客园首页:https://www.cnblogs.com/informatics/ ## 背景 go语言的一大优势就是跨平台,go语言是编译型语言,与Java、C#等语言的跨平台不同的是: 1. go语言的跨平台不依赖于`虚拟机` 2. go语言的 ......
程序 mac

Go,从命名开始!Go的关键字和标识符全列表手册和代码示例!

> 关注TechLeadCloud,分享互联网架构、云服务技术的全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。 ![file](https://img2023. ......
标识符 示例 标识 关键字 关键