Golang学习笔记
文章平均质量分 55
小白学习golang,看了一些网站和一些书籍,特作了一些学习笔记,和大家共享
爆米花9958
这个作者很懒,什么都没留下…
展开
-
go-kit微服务:日志功能
本质上讲,go-kit中间件采用了装饰者模式,传入Endpoint对象,封装部分业务逻辑,然后返回Endpoint对象。我们通过给service层添加日志功能来说明一下Step-1:创建Middleware新建middleware.go文件,加入如下代码:import ( "github.com/go-kit/kit/log")const ContextReqUUid = "req_uuid"type ServiceMiddleware func(Service) Serv原创 2020-12-29 20:51:20 · 1301 阅读 · 0 评论 -
windows下golang使用protobuf
windows 下安装protoc与protoc-gen-goProtobuf(Protocol Buffer)是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了多种语言的实现:java、c#、c++、go 和 python,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 xml 进行数据交换快许多。(也就是说,当服务器端使用go实现,注册了api;那么客户端是python实现,通过Protobuf也可以实现远程访问)1、protoc原创 2020-12-09 11:08:25 · 1728 阅读 · 0 评论 -
gokit学习
惊回首,2020只剩一月,收获不多,深感愧疚,加油吧,少年原创 2020-11-30 19:16:18 · 1716 阅读 · 1 评论 -
golang中的interface{}转其他类型
在go语言中,如果值类型是interface{}类型的话,直接赋值是无法转化的,可以通过如下方式实现:value.(type)例如://interface 转stringvar a interface{}var str stringa = "3432423"str = a.(string)fmt.Println(str) //interface 转intvar m interface{}var m1 intm = 43m1 = m.(int)fmt.Println(m1原创 2020-08-22 13:42:36 · 1203 阅读 · 0 评论 -
go数据类型转换
简单的转换操作在必要以及可行的情况下,一个类型的值可以被转换成另一种类型的值。由于Go语言不存在隐式类型转换,因此所有的类型转换都必须显式的声明:valueOfTypeB = typeB(valueOfTypeA)类型转换只能在定义正确的情况下转换成功,例如从一个取值范围较小的类型转换到一个取值范围较大的类型(将 int16 转换为 int32)。当从一个取值范围较大的类型转换到取值范围较小的类型时(将 int32 转换为 int16 或将 float32 转换为 int),会发生精度丢失...原创 2020-08-22 13:17:28 · 527 阅读 · 0 评论 -
go数值进制转换
要实现进制转换,go语言为我们提供了很简单的接口供我们调用,如下:func main() { var v int64 = 12 //默认10进制 s2 := strconv.FormatInt(v, 2) //10 转2进制 fmt.Printf("%v\n", s2) s8 := strconv.FormatInt(v, 8) fmt.Printf("%v\n", s8) s10 := strconv.FormatInt(v, 10)原创 2020-08-20 20:13:41 · 6816 阅读 · 0 评论 -
Go语言字符串
一个字符串是一个不可改变的字节序列,字符串可以包含任意的数据,但是通常是用来包含可读的文本,字符串是 UTF-8 字符的一个序列(当字符为 ASCII 码表上的字符时则占用 1 个字节,其它字符根据需要占用 2-4 个字节)。UTF-8 是一种被广泛使用的编码格式,是文本文件的标准编码,其中包括 XML 和 JSON 在内也都使用该编码。由于该编码对占用字节长度的不定性,在Go语言中字符串也可能根据需要占用 1 至 4 个字节,这与其它编程语言如C++、Java或者Python不同(Java 始...翻译 2020-08-20 19:28:37 · 227 阅读 · 0 评论 -
Go语言bool类型
一个布尔类型的值只有两种:true 或 false。if 和 for 语句的条件部分都是布尔类型的值。Go语言对于值之间的比较有非常严格的限制,只有两个相同类型的值才可以进行比较,如果值的类型是接口(interface),那么它们也必须都实现了相同的接口。如果其中一个值是常量,那么另外一个值可以不是常量,但是类型必须和该常量类型相同。如果以上条件都不满足,则必须将其中一个值的类型转换为和另外一个值的类型相同之后才可以进行比较。布尔值可以和 &&(AND)和 ||(OR)操作符结合,并翻译 2020-08-16 18:24:20 · 899 阅读 · 0 评论 -
go解析json
JSON 是一种使用 UTF-8 编码的纯文本格式,采用完全独立于语言的文本格式,由于写起来比 XML 格式方便,并且更为紧凑,同时所需的处理时间也更少,致使 JSON 格式越来越流行,特别是在通过网络连接传送数据方面。Go语言内建对 JSON 的支持,使用内置的 encoding/json 标准库,开发人员可以轻松使用Go程序生成和解析 JSON 格式的数据。生成json数据go语言中将结构体转为json的过程叫编组(marshaling)。编组通过调用json.Marshal函数...原创 2020-07-14 14:39:29 · 2829 阅读 · 0 评论 -
go字符串与16进制[]byte的转换
最近工作中遇到的问题,要实现的功能正如题目所说,我要将字符串转换为16进制的[]byte,网上搜了好多的文章,很多的题目都是“[]byte 与 16进制(String) 的相互转换”这种类似的题目,虽然参考以后也解决了问题,但是这也给了很大的误导性,本身16进制的字符串就是个问题,难道我们传入字符串还要传入一个16进制的字符串?而且我要的是[]byte为16进制,不知道为什么要这样起标题,好了,直接进入我们的主题吧func main() { // 转换的用的 byte数据 byte_d原创 2020-05-11 16:15:54 · 14843 阅读 · 0 评论 -
go整型和字节数组之间的转换
主机字节序主机字节序模式有两种,大端数据模式和小端数据模式,在网络编程中应注意这两者的区别,以保证数据处理的正确性;例如网络的数据是以大端数据模式进行交互,而我们的主机大多数以小端模式处理,如果不转换,数据会混乱 参考 ;一般来说,两个主机在网络通信需要经过如下转换过程:主机字节序 —> 网络字节序 -> 主机字节序大端小端区别大端模式:Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端低地址 --------------------> 高地原创 2020-05-11 16:03:36 · 4190 阅读 · 1 评论 -
Go语言切片
切片(slice)是对数组的一个连续片段的引用,所以切片是一个引用类型(因此更类似于 C/C++中的数组类型,或者Python中的 list 类型),这个片段可以是整个数组,也可以是由起始和终止索引标识的一些项的子集,需要注意的是,终止索引标识的项不包括在切片内。Go语言中切片的内部结构包含地址、大小和容量,切片一般用于快速地操作一块数据集合,如果将数据集合比作切糕的话,切片就是你要的“...原创 2020-05-08 14:45:13 · 162 阅读 · 0 评论 -
Go语言数组
数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成。因为数组的长度是固定的,所以在Go语言中很少直接使用数组。Go语言数组的声明数组的声明语法如下:var 数组变量名 [元素数量]Type语法说明如下所示:数组变量名:数组声明及使用时的变量名。 元素数量:数组的元素数量,可以是一个表达式,但最终通过编译期计算的结果必须是整型数值,元素数量不能含有到...翻译 2020-05-08 14:42:08 · 202 阅读 · 0 评论 -
Go数据类型
Go 语言按类别有以下几种数据类型: 序号 类型和描述 1 布尔型 布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。 2 数值类型 整型 int 和浮点型 float,Go 语言支持整型和浮点型数字,并且原生支持...翻译 2020-05-07 11:43:32 · 337 阅读 · 0 评论 -
Go语言变量
我们在安装好go语言后,已经写了个“Hello World”代码来测试,接下来让我们来看下代码的各个部分:package mainimport "fmt"func main() { fmt.Println("Hello, World!")}Go 语言的基础组成有以下几个部分:包声明 引入包 函数 变量 语句 & 表达式 注释package main...原创 2020-04-23 10:46:43 · 169 阅读 · 0 评论 -
Go语言结构
我们在安装好go语言后,已经写了个“Hello World”代码来测试,接下来让我们来看下代码的各个部分:package mainimport "fmt"func main() { //这是我的第一个简单的程序 fmt.Println("Hello, World!")}Go 语言的基础组成有以下几个部分:包声明 引入包 函数 变量 语句 & 表...原创 2020-04-19 23:52:58 · 777 阅读 · 0 评论 -
Go开发环境安装
Go 语言支持以下系统:Linux FreeBSD Mac OS X(也称为 Darwin) Windowsgo语言官方下载地址:https://golang.org/dl/。由于墙的原因,golang.org这个域名下的资源是无法访问的,可以使用这个地址:https://golang.google.cn/dl/。UNIX/Linux/Mac OS X, 和 FreeBSD 安装...原创 2020-04-19 23:13:27 · 169 阅读 · 0 评论 -
Go语言开篇
由于工作的需要,小弟开始学习使用golang,在这里把学习中遇到的问题和笔记和大家一同分享Go 语言简介Go是一种新的语言,一种并发的、带垃圾回收的、快速编译的语言。Go是谷歌2009年发布的第二款编程语言。2009年7月份,谷歌曾发布了Simple语言,它是用来开发Android应用的一种BASIC语言。Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。Go是...原创 2020-04-19 21:20:08 · 201 阅读 · 0 评论