go
你不懂程序员的Bug
兼爱平生
展开
-
go反射生成指定类型的结构体数组
上面已经有非常详细的代码注解了,所以也不用太多的解释,如有不明白的地方,可以直接留言沟通。反射生成结构体数组 根据传入类型生成对应数组。生成string类型的数组。使用golang语言。原创 2023-02-03 11:09:26 · 589 阅读 · 0 评论 -
go反射生成指定类型的结构体切片,并赋值
上面已经有非常详细的代码注解了,所以也不用太多的解释,如有不明白的地方,可以直接留言沟通。反射生成结构体切片 根据传入类型生成对应切片, 并把值放到切片里。生成string类型的切片。使用golang语言。生成结构体切片并赋空值。生成结构体切片,并赋值。原创 2023-02-03 11:02:03 · 1003 阅读 · 0 评论 -
go反射调用结构体对象方法
上面已经有非常详细的代码注解了,所以也不用太多的解释,如有不明白的地方,可以直接留言沟通。golang语言使用反射机制,调用结构体相关方法,方法包含传参和返回结果。原创 2023-02-03 10:53:37 · 230 阅读 · 0 评论 -
go语言使用redis用作分布式锁
用redis实现分布式锁,直接上代码,代码量很少,也很简单。如有其他疑问,可以大胆留言。原创 2023-02-03 10:05:55 · 310 阅读 · 0 评论 -
golang chan被关闭后读写的那点事
func main() { closeReadChan() closeWriteChan() closeReadChan2()}// 从有缓冲被关闭的chan写数据, 报错: panic: send on closed channelfunc closeWriteChan() { wg := sync.WaitGroup{} ch := make(chan int, 100) wg.Add(2) go func() { defer w.原创 2021-11-02 20:12:21 · 480 阅读 · 0 评论 -
golang实现协程之间的调用栗子
题目:有一个独立的do方法输出“do”的字样, 有3个协程;A协程里触发B协程输出10次do字样,随后B协程告诉A协程做完10次输出,接着A协程输出一次do字样,接着A协程触发C协程关闭B协程,随后C协程关闭, A协程关闭。package mainimport ( "context" "fmt" "sync" "time")func main() { aChan := make(chan int) bChan := make(chan int) cChan := mak原创 2021-08-19 19:20:14 · 327 阅读 · 0 评论 -
golang反射之遍历struct字段及内容
package mainimport ( "fmt" "reflect")type BaseData struct { // mysql DbUrl string `yaml:"db_url" name:"数据库地址"` DbUser string `yaml:"db_user" name:"数据库用户名"` DbPassWord string `yaml:"db_pass_word" name:"数据库密码"` DbName .原创 2020-06-05 10:09:45 · 7525 阅读 · 0 评论 -
golang语言之互斥锁详解
互斥锁是传统的并发程序对共享资源进行访问控制的主要手段,在Go中,似乎更推崇由channel来实现资源共享和通信。它由标准库代码包sync中的Mutex结构体类型代表。只有两个公开方法:调用Lock()获得锁,调用unlock()释放锁。 使用Lock()加锁后,不能再继续对其加锁(同一个goroutine中,即:同步调用),否则会panic。只有在unlock()之后才能再次Lock()。...原创 2020-03-27 00:18:32 · 525 阅读 · 0 评论 -
使用golang语言判断字符串是否回文,如果不是找出最大回文
长话短说,上代码:import "fmt"func HuiWen () { str := "1234566" //判断是否回文 for i := 0; i < len(str)/2 - 1; i ++ { if str[i] != str[len(str)-i -1] { fmt.Println("不是回文字符串") ...原创 2019-05-04 23:37:17 · 1144 阅读 · 0 评论 -
nsq的搭建超详细
对于什么是nsq,请参考https://blog.csdn.net/chinawangfei/article/details/80341688。在本地搭建时,请先到nsq官网熟悉搭建流程,具体网址为:https://nsq.io/overview/quick_start.html。搭建NSQ实时分布式消息平台,主要启动三个模块nsqlookupd 、nsqd、nsqadmin。1.在第...原创 2019-04-10 16:33:01 · 1597 阅读 · 0 评论 -
go语言中map类型的用法
map是一堆键值对的未排序集合。比如以身份证号作为唯一键来标识一个人的信息,则这个 map可以定义为代码清单 2-3所示的方式。代码清单2-3 map1.go package mainimport "fmt"// PersonInfo是一个包含个人详细信息的类型 type PersonInfo struct {ID stringName string Address string...原创 2018-08-13 19:20:31 · 2661 阅读 · 0 评论 -
go语言基础篇2
1、类型:布尔类型:bool。 整型:int8、byte、int16、int、uint、uintptr等。 浮点类型:float32、float64。 复数类型:complex64、complex128。 字符串:string。 字符类型:rune。 错误类型:error。此外,Go语言也支持以下这些复合类型: 指针(pointer) 数组(array)...原创 2018-08-13 17:23:49 · 241 阅读 · 0 评论 -
go语言switch的用法
switch会根据传入条件的不同,选择语句会执行不同的语句。下面的例子根据传入的整型变量i的不同而打印不同的内容:switch i { case 0:fmt.Printf("0") case 1:fmt.Printf("1") case 2:fallthrough case 3:fmt.Printf("3") case 4, 5, 6:fmt.Printf("4, 5,...原创 2018-08-14 09:58:44 · 660 阅读 · 0 评论 -
go语言基础篇1
package mainimport ( "fmt")func main() { fmt.Println("Hello World") fmt.Println(getStr()) getLength() fmt.Println() values := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} resultChan := make(ch...原创 2018-08-09 17:57:51 · 275 阅读 · 0 评论