前言 回顾整个2022,突然发现我一篇博客都没写,趁着还没2022还没过去,赶紧水一篇博客 分享一下我最近学习到的一些东西,这次的主题是“Golang大坑之循环goroutine闭包调用”,大家就当小故事来看吧。 小美又写了bug 仔细看,这个女孩叫小美,她最近刚入职某Go大厂,从Java转了Go,小美入职仅仅花了半天就学完了Go语法,然后三天写了5个bug
代码如下: package mainimport ( "fmt")//节点type CatNode struct{ id int name string next *CatNode}//循环链表type CircleLink struct{ head *CatNode}//插入func (circleLink *CircleLink)Insert(newCatNode *CatNode){
一、Go语言循环 package main import "fmt" func main() { //循环方式1 sum := 0 for i := 1; i = y){ return x }else{ return y } } func swapX(x *int, y *int){ tmp:= *x *x = *y *y = tmp } 四、结构体
在 Golang 中,常见的循环有 for 循环和 range 循环。 for 循环 for 循环的基本语法如下: for initialization; condition; post { // 循环体 } 其中,initialization 表示循环开始前的初始化语句,condition 表示循环条件,post 表示每次循环后要执行的语句。在每次循环时,都会先执行
常见的循环结构 package main import ( "fmt" "os" "strconv" ) func main() { //常规结构 for i := 0; i = 10 { break } fmt.Print(i) fmt.Print(" ") i++ } fmt.Print("\n") //对集合类型的操作
package main import ( "sync" ) var count = 5 func main() { wg := sync.WaitGroup{} chanA := make(chan struct{},1) chanB := make(chan struct{},2) chanC := make(chan struct{},3) chanA <-
字符数据运算 'A' + 1 = 'B'。 使用byte类型,获取A对应的ASCII数字65,然后循环加1获得26个字母对应的ASCII数值,再用%c输出还原该数字对应的ACSii码字符,就得到A-Z。 package main import "fmt" func main() { var arr [26]byte for i := 0; i < 26; i++ { arr[i]
package main import ( "fmt" "sync" "time" ) //第一种,利用time.sleep控制协程执行的顺序(同时保证协程全部执行完毕,否则主线程main不等待协程执行完毕就结束了) func main() { for i := 0; i < 100; i++ { go Print(i) time.Sleep(time.Second)
开心一刻 一个国王要替公主征婚,把一个苹果放在公主头上,谁要把它射中就有机会迎娶公主。 第一个男士把苹果射中,他说:“I’m 罗宾。” 第二个男士也把苹果射中,他说:“I’m 后羿。” 第三个男士不小心把公主射死了,他说:“ I’m sorry…" 题目介绍 使用两个goroutine交替打印1-100之间的奇数和偶数, 输出时按照从小到大输出. 做法一 package
关键性数据结构 hmap: map 的 header结构 bmap: map 的 bucket结构 mapextra: map 的 拓展结构 不是每一个map都包含 golang map 是用 hash map实现的,首先,我们先看 hash map是怎么实现的;然后我们再看 golang map 是怎么基于 hash map 封装的 map 类型。 Bucket // A bucket for