Go
私人Go语言学习笔记,对新手或想要了解相关底层的朋友十分友好
菜鸟程序员丶
在变强的路上秃飞猛进!!!
展开
-
【Go语言】深入浅出chan(各种实例场景+分析)
文章目录chan简介问题引入有缓冲通道chan简介chan 是go的一个关键字,也就是通道的意思,通道是goroutine之间通信和同步的重要组件,也就是go通过通信来共享内存的猜题问题引入先引出一个问题来加深理解:求1-200每个数的阶乘,要求开启200个goroutine各自执行,并将结果存入同一map中,等全部存入完毕后再遍历直接定义好map后启动goroutine来操作:var ( maps = make(map[int]int,10))func main(){ for原创 2020-12-26 18:28:40 · 3342 阅读 · 2 评论 -
【Go语言】深入理解值类型和引用类型(实例分析)
1.实例今天在刷博客的时候看到了这么一个观点:切片并不是纯引用类型!给出的证明过程是:图一://(该代码引用于原博主,仅用于在此探讨问题,无恶意)package main import "fmt" func main(){ a :=[...]int{0,1,2,3,4,5,6,7,8,9} fmt.Println(a) s1:=a[:] s2:=s1[:] fmt.Println(s1)原创 2020-12-05 20:05:59 · 335 阅读 · 0 评论 -
【Go语言】一文了解数组和切片区别(内存结构)
文章目录引子定义内存结构(!!!)内置方法总结引子数组和切片是我们较为常用的数据结构,正是因为他们的普遍,其中有许多小问题都被我们忽略掉了,比如说:1.在作为参数传递时,为什么切片的改动会使得原来的实参也发生变化,而数组的改动就不会影响到实参2.为什么数组的类型会因为长度不同而无法兼容,但是切片却可以随意传递,两者的内存布局到底是什么样的3.为什么数组偏向静态的不能追加,而切片却可以动态扩容…定义先从定义开始数组常用的定义方法:var arr_1 = [...]int{1,2,3}//[原创 2020-12-01 13:43:25 · 905 阅读 · 0 评论