![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Go
文章平均质量分 81
WongBynn
这个作者很懒,什么都没留下…
展开
-
Go语言之包和go工具
引言Go自带100多个包,可以为大多数应用程序提供基础。Go社区是一个茁壮成长的生态环境,其中鼓励包设计、共享、重用以及改进,已经发布的很多包,可以在https://godoc.org找到。包管理系统的目的是为了对关联的特性进行分类,组织成便于理解和修改的单元,使其与程序的其它包保持独立,从而有助于设计和维护大型程序。Go的包管理类似于Java的依赖管理,比如常用的:maven,不同的是,Go的包管理不需要指定GAV坐标,而是需要调用者主动下载包文件。包通过控制名字是否导出使其对包外可见来提原创 2021-12-19 17:04:48 · 211 阅读 · 0 评论 -
Go语言之goroutine和通道
goroutine在Go里,每一个并发执行的活动称为goroutine。 如果你是一名Java程序员,可以把goroutine比作为线程,但是goroutine和线程在数量上有很大的差别,原因在于Go语言引入了协程的概念,协程相比于线程是一种用户态的线程,协程更加轻量,实用更加经济,因此同样的服务器可以开销的协程数量要比线程多很多。goroutine和协程的区别: goroutine是协程的go语言实现,相当于把别的语言的类库的功能内置到语言里。从调度上看,goroutine的调度开销远远小原创 2021-12-13 15:43:27 · 241 阅读 · 0 评论 -
Go语言之接口
接口接口类型是对其他类型行为的概括与抽象。通过使用接口,我们可以写出更加灵活和通用的函数,这些函数不用绑定在一个特定类型的实现上。很多面向对象的编程语言都有接口的概念,Go语言的接口的独特之处在于它是隐式实现的。换句话说,对于一个具体的类型,无需声明它实现了哪些接口,只要提供接口所必需的方法即可。这种设计让你无需改变已有的类型的实现,就可以为这些类型创建新的接口,对于那些不能修改包的类型,这一点特别有用。声明接口并实现声明一个Car接口,并new出三种车辆去实现这个接口,代码如下:pa原创 2021-12-11 16:15:45 · 1733 阅读 · 0 评论 -
Go语言之方法
概念方法的声明和函数极为类似,区别在于在函数名称前指定了一个类型,意思就是把这个函数绑定到了这个类型上,这就是方法。这个就是OOP编程思想的体现,让方法属于某一个类型,会Java的同学可能会非常熟悉这种感觉。packagemainimport("fmt""math")typePointstruct{x,yfloat64}//普通的函数funcDistance(p,qPoint)float64{returnmath.Hypot(q.x-p....原创 2021-12-09 17:48:26 · 630 阅读 · 0 评论 -
Go语言之函数
函数函数是每一种编程语言在构建大型程序时进行连续调用的子单元,一般情况下一个函数,是一定可以完成某种功能,这种功能可以是数据的处理或者包装、也可能是一个HTTP请求,也可以是对数据库的操作等。这种调用单元就是函数,每种语言函数的写法会有差异,但是理论原理都是一样的。以上是我个人的理解,如有问题,可以私信交流哦~函数声明在Go语言里面,每个函数声明包含一个名称、一个形参列表、一个可选的返回列表以及函数体:func name(parameter-list) (result-list){ ..原创 2021-12-08 15:26:48 · 110 阅读 · 0 评论 -
Go语言复合数据类型之JSON
JSONJSON是JavaScript对象的表示法,是一种发送和接收信息的格式标准。也是我们日常工作中使用最为广泛的数据结构之一。Go语言通过标准库encoding/json,encoding.xml,encoding/asn1和其他库对JSON的解码和编码做了很好的支持,这些库都拥有相同的API。我们在实例中使用最多的encoding/json来做演示。JSON的对象用来编码Go里面的map(键为字符串类型)和结构体,如下:boolean truenumber -25.3str...原创 2021-12-08 13:23:54 · 812 阅读 · 0 评论 -
Go语言之结构体
概念结构体是将零个或者多个任意类型的命名变量组合在一起的聚合数据类型,每个变量都叫做结构体的成员。在Java语言中,对应的概念则是类,这是Java面向对象编程思想的重要体现。细节 先看看Go语言中的结构体: #定义一个雇员的结构体typeEmployeestruct{IDintNamestringAddressstringDobtime.TimePostionintSalaryintManage...原创 2021-11-22 16:50:22 · 343 阅读 · 0 评论 -
Go语言复合数据类型之map
map概念map是使用非常广泛且设计精妙的数据结构之一,在Java里面,我们使用最多的数据结构之一就是map。map是一个拥有键值对元素的无序集合,在这个集合中,键的值是唯一的,可以通过键来获取、更新、删除对应的值。无论散列表多大,这些操作都可以在常量的时间内完成。map细节 声明一个map: var ages map[string]int或者下面这样ages := make(map[string]int) //创建一个从string到int的map我们也可以使用map的字...原创 2021-11-16 14:16:37 · 506 阅读 · 0 评论 -
Go语言复合数据类型之slice
slice概念slice表示一个拥有相同类型元素的可变长度的序列。slice通常写成[]T,其中元素的类型都是T,这点儿类似于java中的泛型,可以接受未知类型的变量。slice是一种轻量级的数据结构,可以用来访问数组的部分或者全部元素。slice的底层是数组,slice有三个属性:指针、长度、容量;指针:是指向每个元素的地址;长度:slice所存储的元素个数;容量:slice的大小;slice细节 Go内置的len()和cap()函数可以返回slice的长度和容量大小。一个底原创 2021-11-14 12:48:04 · 377 阅读 · 0 评论 -
Go语言复合数据类型之数组
在学习复合数据类型之前,我们得知道复合数据类型是由基本数据类型组合而成,和Java一样,Go语言也有基本数据类型,不过Go语言的基础数据类型有点特殊,它们分别是整数、浮点数、复数、布尔值、字符串、常量这六大类。相比之下,Java的基础数据类型就显得非常细致,它们分别是:byte、int、short、long、char、float、double、boolean。数组的概念数组是具有固定长度且拥有零个或者多个类型元素的序列。由于数组的长度是固定的,所以在Go里面很少直接使用,使用更多的是slice。原创 2021-11-12 20:31:48 · 242 阅读 · 0 评论 -
Go语言之包和文件
在Go语言中,包的作用和其他语言的库或者模块类似,Go语言的包我感觉类似于IDEA里面的module,就是可以互相调用的子工程的概念。用于支持模块化、封装、编译隔离和重用。一个包的源代码保存在一个或者多个以.go结尾的文件中,它所在目录名的尾部就是包的导入路径。每一个包给它的声明提供独立的命名空间。例如,在image包中,Decode标识符合unicode/utf16中的标识符一样,但是关联了不同的函数。为了从外部引用一个函数,我们必须明确修饰标识符来指明所指的是image.Decode或utf16.D原创 2021-11-08 12:42:04 · 207 阅读 · 0 评论 -
Go语言类型之声明
在任何程序中,我们都会进行类型的声明,这一点任何程序设计语言都是相似的。不同的类型会有不同的含义,比如:int类型可以用来表示循环的索引、时间戳、文件描述符、月份等;float64可以用来表示速度、或者温度;string类型的可以用来表示文件名称、姓名、实体的描述等;在Go语言中,使用type声明定义一个新的命名类型,该类型一定是底层已有的类型,如下所示:type name underlying-type类型的声明通常出现在包级别,这里命名的类型在整个包中可见,如果该类型的首字母大写,则其他.原创 2021-11-08 10:36:59 · 345 阅读 · 0 评论 -
Go语言程序结构之变量
初识Go语言之变量var声明创建一个具体类型的变量,然后给它附加一个名字,设置他的初始值,这种声明都是一个通用的形式:varnametype=expression在实际的开发中,为了方便开发,我们一般不会这么写,我们会省略type或者expression,因为省略了type,编译器会由expression推断出type的值,而省略了expression,编译器会给变量自动赋值为零值,就是常见的nil。不同类型的零值如下表所示:type 零值 int 0 bo...原创 2021-10-29 13:41:41 · 120 阅读 · 0 评论