转发自自己的公众号(灰子学技术)原文链接:https://mp.weixin.qq.com/s/2QDEwy7Udnzi5rpVmnCFxQ一、Go语言中const常量Go语言的常量关键字是const,用于存储不会改变的数值,定义的格式为:const valueName type = value或者const valueName = value const a = "abc" const b string = "Hello" Go里面常量,具有常量的基本特质,不能修改。原因是:常量的数值在...
-
Go 语言之常量
-
Go语言之指针篇
转发自自己的公众号(灰子学技术)原文链接:https://mp.weixin.qq.com/s/qXi-_e_nuVDnaiPfm2HIHQ一、写在前面的话:在介绍Go的指针之前,我们需要先介绍下,指针是什么?为什么我们需要指针?(备注:这里指的是原始指针。)1.指针是什么?首先指针是一个变量,全名叫做指针变量,只不过这个变量里面存储的值是一个地址而已。所以指针,哪怕是空指针,都是有地址的,因为变量都是有地址的。例子如下:Output:从下面的输出,我们可以看出空指针a的地址是存在,在a指向b之...
-
Go语言之Defer篇
转发自自己的公众号(灰子学技术)。原文链接:https://mp.weixin.qq.com/s/5V0eeDpbe937j-6FtWpRUQ写在前面的话:在接触defer之后,觉得Go的这一特性很好,有点类似于C++的析构函数,不过他们却有很大的不同。主要的区别点是defer实现在函数里面,作用域也是在函数里面,当函数的return语句被调用之后,才会调用到这个defer声明的函数。而析构函数实现在类里面,作用域是在类内部,在该类的实例被销毁的时候,就会被调用到。在谈论defer之前,笔者问...
-
Go语言之goroutine的调度原理
转自本同步公众号:“灰子学技术”一、关于并发的基础知识再讲goroutine的调度原理之前,有些与操作系统相关的知识,我们需要先知道,例如:1.什么是并发?并发:两个或两个以上的任务在一段时间内被执行。我们并不关心这些任务是否在同一时刻执行,我们只是知道,这些任务在这一段时间能能够都被执行,当然这一段时间可以很长,也可以很短。2.并发的最小并发单位是什么?进程是计算机资源分配最小的单位,是CPU分配资源的基本单位,具有独立的内存。线程是计算机调度最小的单位,也是程序执行的最小单位,是在进程中的...
-
Go语言之匿名函数和C++的lambda表达式
微信公众号 原文链接:https://mp.weixin.qq.com/s/f0St4CioNc8QZHK4jop-3g #一、Go语言中的匿名函数 指的是不需要有名字的函数,通常定义在另外一个函数内部。 ###格式: func (参数列别)(返回值列表) { } 例子: ``` package main import ( "fmt" ) func main() { Sum := func(l, r int) (sum int) { sum = l +...