![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
GO
Hogan180
这个作者很懒,什么都没留下…
展开
-
使用GO作并发编程
12.并发编程12.1 并发与并行Erlang 之父 Joe Armstrong曾经以下图解释并发与并行。并发在图中的解释是两队人排队接咖啡,两队切换。并行是两个咖啡机,两队人同时接咖啡。“Concurrency is about dealing with lots of things at once. Parallelism is about doing lots of things at once.” — Rob Pike并发使并行变得容易,并发提供了一种构造解决方案的方法,并行一般伴随这多原创 2020-12-26 20:16:01 · 595 阅读 · 0 评论 -
初探GO中的反射机制
10.反射机制10.1 反射是什么反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。Go 语言提供了一种机制在运行时更新变量和检查它们的值、调用它们的方法,但是在编译时并不知道这些变量的具体类型,这称为反射机制。10.2 反射的作用1.在编写不定传参类型函数的时候,或传入类型过多时典型应用是对象关系映射type User struct {gorm.ModelName stringAge sql.N原创 2020-12-24 21:59:33 · 520 阅读 · 0 评论 -
GO语言中的异常处理
9.异常处理9.1 errorGo语言内置了一个简单的错误接口作为一种错误处理机制,接口定义如下:type error interface {Error() string}它包含一个 Error() 方法,返回值为stringGo的error构造有两种方式,分别是第一种:errors.New()err := errors.New(“This is an error”)if err != nil {fmt.Print(err)}第二种:fmt.Errorf()err := fmt.原创 2020-12-23 23:39:29 · 608 阅读 · 0 评论 -
GO中的包管理
我们知道,程序是可以通过封装来提高代码的复用性。那么GO就是可以通过包管理的机制来管理代码。Go Modules于Go语言1.11版本时引入,在1.12版本正式支持,是由Go语言官方提供的包管理解决方案。Modules是相关Go包的集合,是源代码交换和版本控制的单元。go命令直接支持使用Modules,包括记录和解析对其他模块的依赖性设置环境变量首先需要设置环境变量,可以使用go env命令查看当前配置。$ go envGO111MODULE="auto"GOPROXY="https://p原创 2020-12-22 21:27:57 · 608 阅读 · 0 评论 -
GO中的结构体,方法以及接口
前言因为GO中吗,没有类的概念,也不支持继承这种操作,但是GO具有结构体,并且结构体的组合方式比类更具有扩展性以及灵活性。结构体一般定义如下:type identifier struct { field1 type1 field2 type2 ...}例如我们想声明一个学生的结构体类型:type Student struct { Name string Age int}结构体中字段的类型可以是任何类型,包括函数类型,接口类型,甚至结构体类型本身。例如我们声明一个链表中的节原创 2020-12-21 22:09:39 · 1019 阅读 · 0 评论 -
GO语言中的函数
函数定义GO语言中的函数定义如下:func functionName([parameter list]) [returnTypes]{ //body}functionName:代表函数名。parameter list:代表参数列表,函数的参数是可选的,可以包含参数也可以不包含参数。returnTypes:返回值类型,返回值是可选的,可以有返回值,也可以没有返回值。body:用于写函数的具体逻辑传递GO语言中存在值与引用,所以在使用函数时也需要明白两者的传递方式。值传递是原创 2020-12-20 22:55:02 · 574 阅读 · 0 评论 -
今天聊聊GO中的数组以及切片
数组数组的定义数组是具有相同类型且长度固定的一组连续数据。在go语言中我们可以使用如下几种方式来定义数组。//方式一var arr1 = [5]int{}//方式二var arr2 = [5]int{1,2,3,4,5}//方式三var arr3 = [5]int{3:10}//arr1 [0 0 0 0 0]//arr2 [1 2 3 4 5]//arr3 [0 0 0 10 0]方法一在声明时没有为其指定初值,所以数组内的值被初始化为类型的零值。方法二使用显示的方式为数组原创 2020-12-19 15:06:59 · 538 阅读 · 2 评论 -
说一说GO语言中的字典与字符串
今天我们来说一说GO语言中的字典与字符串字典map是一种较为特殊的数据结构,在任何一种编程语言中都可以看见他的身影,它是一种键值对结构,通过给定的key可以快速获得对应的value。字典的定义var m1 map[string]intm2 := make(map[int]interface{}, 100)m3 := map[string]string{ "name": "james", "age": "35",}在定义字典时不需要为其指定容量,因为map是可以动态增长的,但是在可以预原创 2020-12-18 22:16:48 · 684 阅读 · 1 评论 -
谈一谈GO语言中的运算符、控制语句
和其他程序语言一样,GO语言中,也有它自己的运算符、控制(条件,循环)语句算术运算符关系运算符位运算符赋值运算符其他运算符运算符之间的优先级关系for循环for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环:for init; condition; post { } //第一种形式for condition { } //第二种形式,同whilefor {} //第三种形式init: 一般为赋值表达式,给控制变量赋初值;condition原创 2020-12-17 21:49:54 · 501 阅读 · 0 评论 -
聊一聊GO中的变量、常量以及枚举
变量首先我们来说一说变量,在计算机语言中,变量就是用来存储值的一个载体。其中变量名可以使用字母、数字、下划线组成,并且第一个字符不能是数字。注意的是,GO语言中如果只声明,定义而不使用这个变量,那么编译就会报错。在GO语言中声明变量的一般形式:var identifier typevar identifier1, identifier2 type//类型相同多个变量, 非全局变量var vname1, vname2, vname3 typevname1, vname2, vname3 = v原创 2020-12-16 23:14:33 · 591 阅读 · 0 评论 -
说一说GO语言中的数据类型
在这里,我们介绍一下,在go语言中的数据类型、关键字以及标识符。数据类型基本数据类型布尔型:只可以是常量 true 或者 false。如,var b bool = true数字类型:数字类型分为整型以及浮点型。其中:整数类型(int,int8,int16,int32,int64,uint,uint8,uint16,uint32,uint64,byte,rune(和int32差不多,处理有中文的字符)注意:int8代表占一个字节的类型,int16代表占两个字节的类型,以此类推,前面有u原创 2020-12-15 23:06:14 · 617 阅读 · 0 评论 -
初探go语言,环境配置填坑记
小编原以为配置环境很简单,很快的,没想到还是过于年轻,以为自己有开发的经验就可以有恃无恐了。结果配个环境居然花了我一个晚上!并且当中我找了许多许多的教程。唉,真是一把辛酸泪啊。那么接下来就介绍一下配置的过程。GO的下载1.首先我们需要下载go语言,可以根据下载地址进行下载,并安装:https://studygolang.com/dl2.添加环境变量,当我们安装完成后,需要在系统中配置环境变量,让系统可以找到go所在的位置。其中,GOROOT:为go语言环境地址; GOPATH:为go的工作目录地址原创 2020-12-14 23:13:51 · 803 阅读 · 0 评论