- 2025-01-08【一文入门】Go语言常用语法和案例
简介Go语言(Golang)作为一门现代编程语言,以其简洁、并发性强、编译速度快而备受欢迎。它由谷歌开发,旨在解决大型软件项目中的常见问题。对于初学者和有经验的开发者来说,Go语言提供了一套直观的语法和强大的工具集,可以高效地构建可靠的软件解决方案。本篇文章旨在为读者提供
- 2025-01-07【Go学习】-02-1-标准库:fmt、os、time
【Go学习】-02-1-标准库:fmt、os、time1fmt标准库1.1输出1.1.1fmt.Print1.1.2格式化占位符1.1.2.1通用占位符1.1.2.2布尔型1.1.2.3整型1.1.2.4浮点数与复数1.1.2.5字符串和[]byte1.1.2.6指针1.1.2.7宽度标识符1.1.2.8其他flag1.1.3Fprint1.1.4Sprint1.1.5
- 2025-01-07Go语言:什么是闭包?
在Go语言中,闭包(closure)是指一个函数可以捕获其外部作用域中的变量并在其内部使用。换句话说,闭包不仅会包含函数本身,还会包含函数在定义时所需的外部环境。以下是一个简单的例子,展示了如何在Go语言中创建和使用闭包:packagemainimport"fmt"funcmain(){//创建一个闭
- 2025-01-06Go语言的语法
Go语言入门与实战引言在当今的开发环境中,随着互联网的快速发展,程序员们面临着越来越复杂的系统需求。针对这些需求,Go语言(又称Golang)作为一种新的编程语言应运而生。Go语言由Google开发,它具有简单、高效和并发处理能力强等特点,越来越受到开发者的青睐。本文将详细介绍Go语
- 2025-01-06Go 语言中值传递与指针传递的选择之道
目录Go语言中值传递与指针传递的选择之道一、Go中的传递本质二、如何选择传递方式1.遵循项目规范2.必须传地址的情况3.必须传值的情况4.可传值可传地址的情况三、值类型与引用类型1.值类型2.引用类型3.深浅拷贝四、方法接收器(Receiver)的选择在Go语
- 2025-01-05go strings包
字符串的遍历packagemainimport( "fmt" "unicode/utf8")funcmain(){ s:="天气好干燥啊A" fmt.Println("字节长度",len(s)) fmt.Println("================") //forrange遍历字符串 len:=0 fori,ch:=ranges{
- 2025-01-01go语言中len函数得到的长度的单位解析
在Go语言中,len函数返回的是数据结构的元素个数,具体的单位取决于调用len的对象类型:对于字符串:len(s)返回字符串s的字节数。注意,Go中的字符串是以UTF-8编码存储的,因此len返回的结果是字符串所占的字节数,而不是字符数。例如,一个包含多字节字符(如中文字符)的字符串,len
- 2024-12-29Go基础之数组,切片,Map
目录1数组1.1简介1.1.1声明数组1.1.2初始化数组1.3访问数组元素1.4多维数组1.4.1二维数组1.4.2初始化二维数组1.4.3访问二维数组1.5数组与函数2切片2.1简介2.1.1定义切片2.1.2切片初始化2.1.3len()和cap()函数2.1.4空(nil)切片2.2切片操作2.2.1切片截取2.2.2
- 2024-12-29Go基础之函数和方法讲解
目录1自定义函数1.1函数定义1.2函数调用与返回多值1.2.1返回类型1.2.2命名返回值1.3函数参数1.3.1值传递1.3.2引用传递1.3.3不定参数1.4函数变量&回调1.4.1函数变量1.4.2函数回调1.5匿名函数1.6defer函数1.6.1定义1.6.2使用方式1.6.3参数求值1.6.4LIFO执行顺序
- 2024-12-29Go基础之条件语句,For循环,错误处理
目录1条件语句1.1if语句1.2switch1.2.1switch1.2.2TypeSwitch1.2.3fallthrough2for循环2.1简介2.2For-eachrange循环2.3示例3错误处理3.1简介3.2error接口3.2.1error接口3.2.2使用errors包创建错误3.2.3errors包原理3.3显式返回错误3.4自定义错误3.4.1
- 2024-12-29Go基础之结构体,接口
目录1结构体1.1简介1.2定义结构体1.3声明结构体1.3.1new声明1.3.2直接声明1.3.3与new的对比1.3.4new和&操作符的区别1.3.5结构体指针1.4结构体标签1.4.1标签的语法1.4.2标签的工作机制1.4.3常见用途1.4.3.1JSON序列化和反序列化1.4.3.2数据库映射1.4.3.3表
- 2024-12-29Go基础之指针和反射讲解
目录1指针1.1简介1.2使用指针1.3指针优化输出1.3.1优化输出复杂类型1.3.2去掉优化1.3.3基本类型1.4指针数组1.4.1指针数组优化1.5指向指针的指针1.6向函数传递指针参数2反射2.1reflect2.1.1示例2.2获取变量值ValueOf2.3修改变量值Value.Set2.3.1Elem方法2.3.2
- 2024-12-29Go IO之文件处理,TCP&UDP讲解
目录1文件处理1.1打开和关闭文件1.2读取文件1.2.1简单示例1.2.2中文乱码1.2.2.1bufio1.2.2.2ioutil1.3写入文件1.3.1Write和WriteString1.3.2fmt.Fprintln1.3.2.1写入文件1.3.2.2写入标准输出1.3.3bufio.NewWriter1.3.4ioutil.WriteFile2TCP&UDP2.1TCP2.1.1服
- 2024-12-29Go 并发之WaitGroup,并发锁,Context
目录1Go并发1.1WaitGroup1.2并发锁1.2.1互斥锁1.2.2读写互斥锁1.2.3sync.Once1.2.4sync.Map1.3Context1.3.1简介1.3.2主要功能1.3.3使用示例1.3.3.1取消信号1.3.3.2设置超时1.3.3.3传递值1Go并发1.1WaitGroupsync.WaitGroup是Go标准库提供的一种同步原语,常
- 2024-12-27GO 学习笔记之三 基础语法(5) 切片
一、定义Go数组的长度不可改变,在特定场景中这样的集合就不太适用,Go中提供了一种灵活,功能强悍的内置类型切片("动态数组"),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。其存在容量和长度的说法,长度是实际数据的长度,容量是可容纳的数组长度。容量
- 2024-12-25Go init()使用详解
持续创作,加速成长!这是我参与「掘金日新计划·10月更文挑战」的第1天,点击查看活动详情1.init()的使用见名知意,init()是Go中的初始化函数。我们都知道,main()函数是Go程序启动的入口,而init()函数就是在main()之前,起到一个初始化的作用。 Go代码解读复制代码packag
- 2024-12-25Go语言基础数据类型详解:整型、浮点型、复数与字符串
Go语言基础数据类型详解:整型、浮点型、复数与字符串Go语言作为一门静态强类型的语言,其数据类型设计简洁而高效。掌握Go的基本数据类型是每个开发者深入理解Go语言的基础。本篇文章将详细介绍Go语言中最常见的基本数据类型,包括整型、浮点型、复数、布尔型、字符串等,并结合实例代码
- 2024-12-24golang并发测试http demo
packagemainimport( "bytes" "fmt" "math/rand" "net/http" "sync" "time")const( url="http://127.0.0.1:8080"//请求的URL ratePerSecond=10
- 2024-12-23Python工具箱系列(五十八)
音频的操作音乐是人类的通用语言,不分国界不分种族。而从数学角度看,音乐就是时间和频率的关系。声音的本质是波,人类听觉的原理就是波引起了耳朵鼓膜的振动。人们用不同乐器、不同力度,在一段连续时间里敲击,就组合出了时间和频率的关系。一切物体都有自己的频率,所以整个世界也可以理
- 2024-12-23rpc简介
什么是RPC(RemoteProcedureCall)?RPC(远程过程调用)是一种计算机通信协议,它允许程序在不同的计算机上像调用本地函数一样,调用远程服务。开发者无需关注底层通信细节(如网络传输),而是通过调用函数接口完成任务。通俗解释可以把RPC想象成:打电话:你拨打远程服务的“电话”(方法),告诉
- 2024-12-22Golang学习笔记_16——Map
Golang学习笔记_13——数组Golang学习笔记_14——切片Golang学习笔记_15——range文章目录Map1.介绍2.声明和初始化3.类型4.基本操作4.1插入更新4.2访问值4.3删除4.4遍历5.注意事项6.示例Map1.介绍在Go语言中,map是一种内置的数据结构,用于存储键
- 2024-12-21Golang学习笔记_14——切片
Golang学习笔记_11——指针Golang学习笔记_12——结构体Golang学习笔记_13——数组文章目录切片1.定义2.创建3.基本操作4.动态性5.子切片6.数组和切片7.注意8.高级用法源码切片Go语言中的切片(slice)是一种非常强大且灵活的数据结构,它基于数组,但提供了
- 2024-12-21Golang学习历程【第四篇 运算符&流程控制】
Golang学习历程【第四篇运算符&流程控制】1.运算符1.1算术运算符1.2关系运算符1.3逻辑运算符1.4赋值运算符1.5其他运算符2.二进制运算3.流程控制3.1条件表达式if3.2for循环3.3forrange(键值循环)3.4switch...case3.5break,continue,goto1.运算符1.
- 2024-12-20计算一个数的平方的方法
packagemainimport( "fmt")funcmain(){ varbfloat64 varafloat64=42 b=a*a fmt.Println("结果",b)}packagemainimport( "fmt" "math")funcmain(){ varbfloat64 varafloat64=42 b
- 2024-12-18GO: sync.Once
什么是sync.Once?sync.Once是Go标准库中的一个结构体,用于确保某些代码只执行一次,无论有多少goroutine并发调用。它提供了一个线程安全的机制,保证初始化操作或某些关键代码只执行一次。通俗解释可以把sync.Once想象成一个保险丝:第一次触发时,保险丝烧断,代码被执行。后