热门 最新 精选 话题 上榜
# Map 官方介绍One of the most useful data structures in computer science is the hash table. Many hash table implementations exist with varying properties, but in general they offer fast lookups, adds, and
原创 2022-12-13 09:04:38
161阅读
2点赞
yyds干货盘点
真希望你也明白runtime.Map和sync.Map
在日常开发中,我们往往会将 JSON 解析成 对应的结构体,反之也会将结构体转成 JSON。本文会通过 JSON 包的两个函数,来介绍 JSON 与结构体之间的转换。
推荐 原创 2022-12-12 23:59:31
538阅读
1点赞
yyds干货盘点
Go 结构体与 JSON 之间的转换
例子1:func main() { ch := make(chan int) ch <- 1 fmt.Println("发送成功")}上面这段代码能够通过编译,但是执行的时候会出现以下错误:为什么会出现deadlock错误呢?因为我们使用ch := make(chan int)创建的是无缓冲的通道,无缓冲的通道只有在有人接收值的时候才能发送值。就像你住的小区没有快递柜和代收
原创 2022-12-12 12:50:45
236阅读
golang的chan用法与fatal error: all goroutines are asleep - deadlock!
哈喽,大家好,我是陈明勇。本文将介绍如何利用 Go 的复合数据类型 Map 的特性对数组或切片进行去重。
原创 精选 2022-12-11 23:59:24
619阅读
1点赞
yyds干货盘点
巧用 Go Map 特性对数组或切片去重
benchmark(基准测试) 可以度量某个函数或方法的性能,也就是说,如果我们知道性能的瓶颈点在哪里,benchmark 是一个非常好的方式。但是面对一个未知的程序,如何去分析这个程序的性能,并找到瓶颈点呢?​​pprof ​​就是用来解决这个问题的。pprof 包含两部分:pprof 是 go 官方提供的性能测评工具,包含在 net/http/pprof 和 runtime/ppro
原创 2022-12-11 21:44:54
161阅读
golang的pprof 性能分析
行为型模式关注对象之间的通信和职责委派。下面介绍go中比较常用的3种设计模式分别是策略模式,模版模式,观察者模式。
结构模式关注类和对象的组合,解决如何将类和对象组装成较大结构的同时,保持结构的灵活和可复用性
原创 2022-12-11 01:00:28
60阅读
go设计模式之结构型模式
众所周知,Go语言是严格类型语言,而开发的时候又遇到传入参数不定的情况,怎么办?这里的三个点(…),就给我们编程人员带来很大的灵活性,具体如下package mainimport ( "fmt" "log")func main() { //声明一个数组,下面不是切片,长度为实际初始值的长度 arr := [...]int{1, 2, 3} //数组传参 PrintArray
原创 2022-12-09 13:46:17
318阅读
golang的三个(...)用法、数组传参
goland工具快捷键使用
原创 2022-12-08 16:21:53
1195阅读
GoLand常用快捷键(转)
Go mod 的三种开启模式GO111MODULE on:支持Go mod模式off:不支持Go mod模式auto (默认模式):如果代码在gopath下,则自动使用gopath模式;如果代码不在gopath下,则自动使用GO mod模式。开启方式: Windows中,在环境变量中添加变量即可,变量名为 GO111MODULE ,变量值可设置为 on、off、auto。Linux中,只要在 /e
原创 2022-12-08 15:42:44
131阅读
我们通过理解例子来测试golang的字符串循环。func main() { var s string = "hello,我的中国" var len int = len(s) fmt.Println(len) for i := 0; i < len; i++ { fmt.Printf("%c", s[i]) }}首先看到字符串s="hello,我的中国"长度为18
原创 2022-12-07 11:07:17
336阅读
本文介绍 Go 语言文件文件写入内容的两种方式。第一种方式是使用 File.Write、File.WriteString、File.WriteAt 进行写入,第二种方式是结合 bufio.NewWriter、Writer.WriteString、Writer.Flush 进行写入。
推荐 原创 2022-12-06 23:27:31
2295阅读
3点赞
yyds干货盘点
一文掌握 Go 文件的写入操作
本文介绍 Go 语言文件如何打开和读取文件的两种方式。通过 os.Open 或 os.OpenFile 函数打开文件,读取文件的第一种方式是通过 File.Read 进行读取,第二种方法是结合 bufio.NewReader 和 Reader.ReadString 进行读取。
推荐 原创 2022-12-05 23:42:31
684阅读
2点赞
yyds干货盘点
一文掌握 Go 文件的读取操作
随着时间的推移,语言爱好者已经构建和共享了许多 Go 框架和库。这些包执行不同的功能,从开发微服务到制作 discord 机器人,一直到构建 Web 应用程序!在本文中,我将尝试让您熟悉一些有用的方法,这些方法是我在尝试使用这种有趣的新编程语言学习和构建应用程序时发现的。
原创 精选 2022-12-05 23:17:44
149阅读
私藏项目实操分享
你应该知道的17个Golang包
C 语言的 #include一上来不太好说明白 Go 语言里 ​​//go:​​ 是什么,我们先来看下非常简单,也是几乎每个写代码的人都知道的东西:C 语言的 ​​#include​​。我猜,大部分人第一行代码都是 ​​#include​​ 吧。完整的就是​​#include <stdio.h>​​。意思很简单,引入一个 ​​
转载 2022-12-05 22:21:34
104阅读
1. goroutine的使用  在Go语言中,表达式go f(x, y, z)会启动一个新的goroutine运行函数f(x, y, z),创建一个并发任务单元。即go关键字可以用来开启一个goroutine(协程))进行任务处理。  创建单个goroutine​package mainimport ( "fmt")func HelloWorld() { fmt.Println("H
转载 2022-12-05 22:15:30
145阅读
go中的协程-goroutine的底层实现(1)
先来看例子:例子1:package mainimport "fmt"func refertest() int { var i int fmt.Printf("在没有调用defer之前。i的值为:%d,i的地址为:%p", i, &i) fmt.Println() defer func() { i++ fmt.Printf("第一个defer。i的值为:%
原创 2022-12-05 20:24:24
127阅读
golang的defer使用一
​​关于《Go语言101》​​ - 为什么写这本书​​致谢​​​​Go语言简介​​ - 为什么Go语言值得学习Go官方工具链 - 如何编译和运行Go程序Go编程入门​​程序源代码基本元素介绍​​​​关键字和标识符​​​​基本类型和它们的字面量表示​​​​常量和变量​​ - 顺便介绍了类型不确定值和类型推断​​运算操作符
转载 2022-12-05 16:33:31
47阅读
其实iota这个常量应该是编译器的常量,iota是一个编译器在编译过程中动态赋值。iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。下面代码,从golang标准库的mutex拿出来的,是一个互斥锁的结构体(关于Mutex不细说这里),里面定义有这样的常量。
原创 2022-12-05 11:05:03
65阅读
golang的特殊常量iota
1.Java VS Go语言Java,从源代码到编译成可运行的代码上图已经展示了这个过程:从Java的源代码编译成jar包或war包(字节码),最终运行在JVM中。我们把Java源代码编译后的jar包或war包看成是工程师生产出来的产品,操作系统是一个平台,JVM就是中间商,那程序的整体性能也要受到中间商JVM的因素影响了。优点:一次编译,到处运行(windows、linux、macos)缺点:J
本文将介绍 go reflect 包的基本使用,通过三个案例对 reflect.Type、reflect.Value、reflect.TypeOf(i)、reflect.ValueOf(i)进行介绍。
原创 精选 2022-12-04 23:44:44
360阅读
3点赞
yyds干货盘点
一文初探 Go reflect 包
本文将会对 Go time 包里面的常用函数和方法如获取当前时间、时间格式化、获取具体时间格式的值如年月日等进行介绍。
推荐 原创 2022-12-03 23:51:17
353阅读
1点赞
yyds干货盘点
一文了解 Go time 包的时间常用操作
本文将对接口定义、接口的实现方法、空接口和类型断言以及类型断言变种 type switch 进行介绍。
原创 精选 2022-12-02 23:53:55
246阅读
1点赞
yyds干货盘点
一文了解 Go 接口
1、单引号在go语言中表示golang中的rune(int32)类型,byte(int8别称),单引号里面是单个字符,对应的值为改字符的ASCII值。Unicode是ASCII(美国信息交换标准码)字符编码的一个扩展。func main() { var v rune = '我' var v1 byte = 'j' var v2 rune = 'j' println(v, v1, v
原创 2022-12-02 22:51:53
447阅读
golang的单引号、双引号、反引号区别
语法运算符说明范例结果+正号+55-负号-5-5+加法运算符3+58-减法运算符5-32*乘法运算符5*315/除法运算符10/33%取模10%31++自增运算符a=2,a++3--自减运算符a=2;a--1+字符串连接符“我的”+"世界"“我的世界”除法运算 /,如果是整数之间做除法运算时,只保留整数部分而舍弃小数部分。Golang 中的自增运算和自减运算只能当做一个独立语句使用,Golang
原创 2022-12-02 12:45:44
251阅读
Golang语言算术运算符教程
本文介绍了 Go 方法的声明方式、组成部分和其与函数的不同点,同时指出​​Receiver​​ 参数类型在不同场景下的选择,最后介绍了 ​​Go​​ 对方法约束的体现。
推荐 原创 2022-12-01 23:54:35
510阅读
2点赞
yyds干货盘点
一文了解 Go 方法
Go语言标准库常用的包及功能Go语言标准库包名功  能bufio带缓冲的 I/O 操作bytes实现字节操作container封装堆、列表和环形列表等容器crypto加密算法database数据库驱动和接口debug各种调试文件格式访问及调试功能encoding常见算法如 JSON、XML、Base64 等flag命令行解析fmt格式化操作goGo语言的词法、语法树、类型等。可通过这个包
原创 2022-12-01 17:58:05
89阅读
1、我们先看一个数组案例,数组在内存的内存分配情况。package mainimport "fmt"func main() { // 数组的地址可以通过数组名来获取 // 数组的第一个元素的地址就是数组的地址 // 数组的各个元素的间隔是依据数组的类型决定的,比如int64间隔8个,int32间隔4个 var intArr [3]int fmt.Println(intArr)
原创 2022-12-01 12:18:37
154阅读
go关于切片(slice)传参是值传递还是引用传递二
golang关于切片的形参与实参
原创 2022-12-01 10:58:33
120阅读
go关于切片(slice)传参是值传递还是引用传递
GO语言面向对象编程探索
原创 2022-12-01 07:46:20
198阅读