golang
Deapou
这个作者很懒,什么都没留下…
展开
-
读写文件
如何读取文件内容://打开文件filePath := "D:/tool/GoIDE/Project/pbft/golang.txt"content, err := ioutil.ReadFile(filePath)if err != nil { fmt.Println("文件打开失败", err)} //读取文件中的内容fmt.Printf("文本为%s\n",string(content))//因为是直接读取所以不用关闭文件什么的操作下面是写操作file, err1 := os.原创 2021-04-12 21:05:22 · 253 阅读 · 0 评论 -
map与 string 之间的转换
解决思路:将map转化为 json将json转化为 string注意: 得先将map转换为string先,如果先将string转换成map的话,格式很麻烦,但也不是不可以函数如下:Func mapToString(param map[string]string) string { dataType,_:=json.Marshal(param) dataString:=string(dataType) return dataString}Func stringToMap(str st原创 2021-04-12 21:02:02 · 1798 阅读 · 0 评论 -
go.mod
首先说为什么我要使用 go mod 而不是直接使用GOPATH?因为本人是使用GOLang来编辑的,当我导入某个第三方库的时候,在编辑器中是可以的,如下:但是当我使用cmd go build的时候,死活找不到我已经go get的包,老是编译失败。。。然后就直接使用go mod,方便简单一个项目一个mod多好Go mod 步骤:首先命令行cd到你的项目目录下(随便什么位置都可以)然后:go env -w GO111MODULE=onGO111MODULE=off:关闭 Go Module原创 2021-04-12 20:57:09 · 161 阅读 · 0 评论 -
奇怪的if判断--Comma-ok断言
就如同下面这一句:addr,ok:=nodeTable[nodeID];ok如果断言失败,ok为false,否则ok为true并且addr为变量的值,即赋值成功。放在上面所给代码的这个情况下就是:如果用户输入的节点在节点池列表中,那么就会判断上述语句,如果不在就直接Fatal。当然这里的ok变量显得很多余,你也可以使用下列的方式来写:addr := nodeTable[nodeID]但是使用这种写法一旦断言失败就会出现运行错误,就很惨。...原创 2021-04-09 16:33:40 · 269 阅读 · 0 评论 -
类型别名和类型定义
记住下面一句话:类型别名和原类型完全一样,只不过是另一种叫法而已完全一样(identical types)意味着这两种类型的数据可以互相赋值,而类型定义要和原始类型赋值的时候需要类型转换(Conversion T(x))。下面这个例子中,v是整数类型,可以直接赋值给d,因为d的类型是D,是是整数的别名。而var i I = v这一句会出错,因为I和整数是两个类型。所以类型别名和类型定义最大的区别在于:• 类型别名和原类型是相同的,• 而类型定义和原类型是不同的两个类型。package main原创 2021-04-08 23:34:21 · 454 阅读 · 0 评论 -
匿名字段
结构体可以包含一个或多个匿名(或者称为内嵌)字段,即这些字段没有显式的名字。仅指明字段的类型,此时该类型就是字段的名字。匿名字段本身可以是一个结构体类型,即结构体可以包含内嵌的结构体。匿名字段匿名字段和面向对象编程中的继承概念相似,可以被用来模拟类似继承的行为。Golang 中的基础就是通过内嵌或组合来实现的,所以说在 Golang 中组合比继承更受欢迎。比如下面的例子:type test struct { name string age int int // 匿名字段}.原创 2021-04-08 23:30:52 · 237 阅读 · 0 评论 -
下划线的作用
就是声明后不在使用有的函数如下图所示必须是两个返回值的,但是这个返回值又没有用,就可以直接使用“_“表示我只需要判断这个目录存在即可,并不需要使用其他的功能。原创 2021-04-08 23:28:17 · 686 阅读 · 0 评论 -
panic异常
先抛出一个问题:这段代码的panic的作用是什么??一般而言,当panic异常发生时,程序会中断运行,并立即执行在该goroutine中被延迟的函数(defer 机制)。随后,程序崩溃并输出日志信息。日志信息包括panic value和函数调用的堆栈跟踪信息。panic value通常是某种错误信息。对于每个goroutine,日志信息中都会有与之相对的,发生panic时的函数调用堆栈跟踪信息。通常,我们不需要再次运行程序去定位问题,日志信息已经提供了足够的诊断依据。因此,在我们填写问题报告时,一般原创 2021-04-08 23:23:24 · 1702 阅读 · 0 评论 -
go语言--Array,Slice,Map
数组:定义:golang中的数组和C语言中的数组是相似的,在 Go 语言中数组是固定长度的数据类型,它包含相同类型的连续的元素,这些元素可以是内建类型,像数字和字符串,也可以是结构类型,元素可以通过唯一的索引值访问,从 0 开始。数组是很有价值的数据结构,因为它的内存分配是连续的,内存连续意味着可是让它在 CPU 缓存中待更久,所以迭代数组和移动元素都会非常迅速。使用方式:1. 基本定义:...原创 2020-02-29 22:04:27 · 269 阅读 · 0 评论 -
go语言--RPC
golang中的rpc• RPC定义RPC,Remote Procedure Call Protocol,远程过程调用协议。RPC是一种通过网络从远程计算机程序上请求服务,但不需要了解底层网络技术的一种协议。RPC协议基于某些传输协议(如TCP和UDP协议等)而存在,为通信程序之间携带信息数据。在传统计算机编程语言中,譬如C和C++,实现RPC是一件不容易的事情。为了实现RPC,首先得基于不...原创 2020-02-24 23:05:05 · 291 阅读 · 0 评论 -
go语言--基础知识
基础知识语言特点:兼具 Python 等动态语言的开发速度和 C/C++ 等编译型语言的性能与安全性不但能让你访问底层操作系统,还提供了强大的网络编程和并发编程支持通过接口(interface)的概念来实现多态性Go语言正是在多核和网络化的时代背景下诞生的原生支持并发的编程语言。go擅长:鉴于Go语言的特点和设计的初衷,从以下几个方面来分析Go语言擅长的领域:在服务器编程方面...原创 2020-02-23 23:09:14 · 405 阅读 · 0 评论 -
go语言--环境搭建
环境搭建打开梯子,因为在网上暂时找不到国内资源打开官网地址(https://golang.org/dl/),下载对应版本的文件,windows下载下图指定的文件:访问Golang 下载页,32 位请选择名称中包含 windows-386 的 msi 安装包,64 位请选择名称中包含 windows-amd64 的。下载好后运行,不要修改默认安装目录 C:\Go\,若安装到其他位...原创 2020-02-23 22:59:11 · 229 阅读 · 0 评论