快乐的程序员
GO-select 的实现原理 GO-select 的实现原理
概述select是go提供的一种跟并发相关的语法,非常有用。本文将介绍 Go 语言中的 select 的实现原理,包括 select 的结构和常见问题、编译期间的多种优化以及运行时的执行过程。 se
2024-03-13
GO每日一题(5) GO每日一题(5)
下面这段代码有什么问题func (m map[string]string) Set(key string, value string) { m[key] = value } func main() { m := make(map[st
2024-03-13
GO语言make和new的区别 GO语言make和new的区别
写在前面虽然 make 和 new  都是能够用于初始化数据结构,但是它们两者能够初始化的结构类型却有着较大的不同;make 在 Go 语言中只能用于初始化语言中的3种类型:sli
2024-03-13
GO每日一题(4) GO每日一题(4)
下面这段代码输出什么type People struct { name string `json:"name"` } func main() { js := `{ "name":"11" }` var p
2024-03-13
GO每日一题(3) GO每日一题(3)
1.下面这段代码输出什么func main() {     ns := []int{010: 200, 005: 100}
2024-03-13
GO每日一题(2) GO每日一题(2)
下面这段代码能输出什么package main import "fmt" type User struct { Name string } func (u *User) SetName(name string) { u.Name
2024-03-12
如何写出优雅的GO代码 如何写出优雅的GO代码
写在前面Go 语言是一门简单、易学的编程语言,对于有编程背景的工程师来说,学习 Go 语言并写出能够运行的代码并不是一件困难的事情,对于之前有过其他语言经验的开发者来说,写什么语言都像自己学过的语言其实是有问题的,想要真正融入生态写出优雅的
2024-03-12
GO逃逸分析 GO逃逸分析
写在前面GO逃逸分析是个老生常谈的话题,今天就来好好谈一下 需要了解的 不同于 jvm 的运行时逃逸分析,golang 的逃逸分析是在编译期完成的 Golang 的逃逸分析只针对指针。一个值引用变量如果没有被取址,那么它永远不可能逃逸 分
2024-03-12
GO每日一题(1) GO每日一题(1)
下面这段代码哪一行会编译失败func main() { nil := 123 fmt.Println(nil) var _ map[string]int = nil } 答案第三行 解析 第一行定义一个变量名为nil,类型为int,
2024-03-12
GO 函数返回值为interface{}注意避坑 GO 函数返回值为interface{}注意避坑
上代码type Person struct { Name string } func GetPerson() *Person { var p *Person return p } func GetPerson1() interfa
2024-03-12
深入理解GO Slice切片 深入理解GO Slice切片
写在前面周日下午在家学习,看到一个关于切片的问题,在网上找了一些资料,做个总结。 上代码func main() { sl := make([]int, 0, 10) var appenFunc = func(s []int) { s
2024-03-12
go 函数转换成接口 go 函数转换成接口
写在前面今天看cron源码的时候发现它支持Regist函数和接口,有一点思考。 上代码// 定义了任务接口 type Job interface { Run() } // 定义了任务函数 type FuncJob func() fun
2024-03-12
4 / 6