GO语言
不要影响我叠Q
这个作者很懒,什么都没留下…
展开
-
解读GO语言中的值传递和引用传递
以下内容大部分来自许世伟《GO语言编程》,在此只是为了做一个笔记,方便日后 遗忘时容易找到 复习的资料GO语言在中的值传递和引用传递GO语言中绝大部分类型都是基于值语义(值传递),包括:基本类型:如byte、int、bool、float32、float64和string等; 复杂类型:如数组(array)、结构体(struct)、指针(pointer)等在C++和C语言中,数组作为...转载 2019-03-03 12:30:20 · 2416 阅读 · 0 评论 -
Goland中的PlantUML手动指定类图位置关系
类之间默认采用两个破折号 -- 显示出垂直 方向的线. 要得到水平方向的可以像这样使用单破折号 (或者点):@startumlRoom o- StudentRoom *-- Chair@enduml你也可以通过改变倒置链接来改变方向@startumlStudent -o RoomChair --* Room@enduml也可通过在箭头内部使用关键字, 例如left...转载 2019-06-17 23:35:03 · 9663 阅读 · 1 评论 -
Go语言中的GOPATH解析
在说GOPATH之前,先说说GO语言的项目结构:1、Go语言中组织单元最大的为项目,项目下包含包。一个包可以有多个文件2、包在物理层面上就是文件夹。同一个文件夹中多个文件的package必须相同,一般package和所在的文件夹名称相同3、Goland中的标准GO项目:Src目录:需要手动创建,和main.go是同一级别的目录Go语言必须要求配置GOPATH环境变量,告诉系...原创 2019-06-12 09:47:42 · 784 阅读 · 0 评论 -
Go语言编译github上的项目遇到的坑
最近转行Go语言服务端,老大写了个很复杂的框架,并且没有文档。在读取源代码的时候,很是痛苦,记忆力不咋地,记不住东西,于是乎想出了通过源代码创建UML类图的办法。C++和JAVA都有类似的工具软件,但是Go语言只有通过github上的一个开源项目来搞。中间遇到了很多坑,于是乎记下这篇文章。首先根据网上的文章,搞这个项目的第一步是go get **********(项目路径),但是第一步就没迈...原创 2019-06-04 19:15:38 · 15458 阅读 · 0 评论 -
Go语言中只读通道和只写通道的理解
只读通道的定义: <-chan type只写通道的定义:chan<- type如何区分:看chan 和 <-的相对位置<- 在chan前面表示通道只能向外传输数据,即这是个只读通道<-在chan后面表示向通道里面写入数据,即这是个只写通道...原创 2019-06-04 15:42:06 · 1420 阅读 · 0 评论 -
Go语言中一些罕见的特性
Go语言的符号以大写字母开头的变量和常量、结构体以及函数名在包外可见,首字母小写的仅仅包内可见遇到函数有多个返回值的,某些返回值不需要接收的,可以使用下划线进行占位。空标识符(blank identifier),即_(也就是下划线)。空标识符可用于任何语法需要变量名但程序逻辑不需要的时候,Go语言中的字符串字面量使用 双引号 或 反引号(或者叫做飘号,键盘上在ESC键的下方)来创建 :...原创 2019-06-03 15:13:00 · 232 阅读 · 0 评论 -
Go语言中的接口
下面的内容抄了好多本书,我也不知道有哪些了,大概有《Go语言核心编程》---许士伟,《Go并发编程实战(第二版)》--郝林“侵入式”的主要表现在于实现类需要明确声明自己实现了某个接口。Go语言中的接口是非侵入式的,体现为:在Go语言中,一个类只需要实现了接口包含的所有函数,我们就说这个类实现了该接口。(方法多的接口或者对象可以赋值给方法少的接口或者对象)。接口类型是一种抽象的类型,它不会暴露出...转载 2019-06-03 14:54:39 · 388 阅读 · 0 评论 -
Goland里面使用PlantUML插件
PlantUML插件安装:Goland里面setting--->plugin---->搜索UML,安装PlantUMLPlantUML语法地址:http://plantuml.com/zh/class-diagram 使用说明:Go语言里面的接口是方法的集合,但是PlantUML里面的接口只是个接口,不能添加方法,可以考虑使用abstract class来替代Go里面的inte...原创 2019-06-13 13:39:58 · 7311 阅读 · 0 评论 -
GO语言中的继承和组合
GO语言中的继承也是通过组合来实现的,二者的具体区别如下:如果一个struct嵌套了另一个有名结构体,那么这个模式就叫组合如果一个struct嵌套了另一个匿名结构体(只有类型没有名字),那么这个结构可以直接访问匿名结构体的方法,从而实现了继承。如果一个struct嵌套了多个匿名结构体,那么这个结构可以直接访问多个匿名结构体的方法,从而实现了多重继承。...原创 2019-06-05 20:48:24 · 773 阅读 · 0 评论 -
GO语言中一种建数组和创建切片的方式比较
[...]T{ } 和 [ ]T{ } 的区别:此处T表示的是数据类型(如int)前者创建的是一个数组,三个点的含义是数组的个数根据后面的花括弧中的元素来确定,数组是值类型后者创建的是一个切片,切片是引用类型。虽然没有指定切片的大小,但是:切片的len和cap都等于后面花括弧中的元素个数,这个是在在Goland中测出来的切片的字面值和数组字面值很像,不过切片没有指定元素个数。...原创 2019-05-19 21:01:26 · 342 阅读 · 0 评论 -
GO语言协程的理解
以下内容大部分摘自许世伟的《GO语言核心编程》最近面试,在自己的简历上写了简单会一些GO语言。结果被面试官问了GO语言goroutine的原理。自己看倒是看过,时间长了又给忘了。特此写下此文以长记性。协程:协程本质上是一种用户态线程,不需要操作系统来进行抢占式调度,并且在真正的实现中寄存于线程中,因此系统开销极小,可以有效的提高线程任务的并发性,而避免多线程的缺点。使用协程的优点是编程简单...转载 2019-05-08 18:16:34 · 10321 阅读 · 0 评论 -
Goland编译前类型断言失败
在Go语言中,有时会遇到这样一种情况,明显的某个类A实现了接口B,但是接口B的变量断言为类型A时总是提示错误,Goland中错误提示如下:这是由于接口类型是类似于指针的类型,类型断言时,要将接口断言为相应类型的指针,而不是直接的类型。在对应的断言类型前面加上*变成指针即可断言成功。(这个错误遇到了两次了,这次记录下长长记性)...原创 2019-07-05 14:41:47 · 480 阅读 · 0 评论