golang json

用于json相关结构体中tag定义的时候需要注意 字段的tag是"-",那么这个字段不会输出到JSON tag中带有自定义名称,那么这个自定义名称会出现在JSON的字段名中 tag中如果带有"omitempty"选项,那么如果该字段值为空,就不会输出到JSON串中 如果字段类型是bool, string, int, int64等,而tag中带有",string"选项,那么这个字段在输出到JSON的时候会把该字段对应的值转换成JSON字符串 解析已知的固定格式的json package main ...阅读全文

简书 2020-10-20 23:32:40 realPeanut

Golang标准库——strconv

strconv strconv包实现了基本数据类型和其字符串表示的相互转换。 Constants const IntSize = intSize IntSize是int或uint类型的字位数。 Variables var ErrRange = errors.New("value out of range") ErrRange表示超出目标类型表示范围。 var ErrSyntax = errors.New("invalid syntax") ErrSyntax表示不符合目标类型语法。 type N...阅读全文

简书 2020-10-20 23:32:39 DevilRoshan

约瑟夫问题

大家自行百度下约瑟夫问题,这里用golang+单向循环链表的方式解决约瑟夫问题,下面先提供一下代码:func (h *people)joseph(nint) { p :=h q := p.next i :=0 for { if p != q { i++ if i == n-1 { // fmt.Println(q.name, ":", q.age) p.next = q.next p = p.next q = p.next i =0 continue } p = q q = q.next }el...阅读全文

简书 2020-10-20 23:32:39 GoSnail

golang JWT-TOKEN生成

如今有很多将身份验证内置到API中的方法 -JSON Web令牌只是其中之一。JSON Web令牌(JWT)作为令牌系统而不是在每次请求时都发送用户名和密码,因此比其他方法(如基本身份验证)具有固有的优势。要了解更多信息,请直接进入jwt.io上的介绍,然后再直接学习。 以下是JWT的实际应用示例。主要有两个部分:提供用户名和密码以获取令牌;并根据请求检查该令牌。 在此示例中,我们使用了两个库,即Go中的JWT实现以及将其用作中间件的方式。 最后,在使用此代码之前,您需要将APP_KEY常量更改...阅读全文

简书 2020-10-20 21:32:39 我爱张智容

Golang字符串类型

字符串类型 Go语言的源文件仅支持UTF-8和Unicode两种编码格式。出于简化语言的考虑,Go语言多数API都假设字符串以UTF-8编码 1.简介 Go语言中,字符串类型也是一种基础类型。 str = "Hello world" //字符串赋值 ch := str[0] //取字符串第一个字符 2.基本操作 2.1 连接 golang的字符串支持使用 "+" 直接拼接 str := "hello" + "123" //结果为hello123 2.2 求长度 len("Hello") //结果...阅读全文

简书 2020-10-20 17:32:42 ShawnLee_123

面经分享:看非科班研究生如何转行斩获 ATM 大厂的 Offer ?(附干货分享)

前言 先介绍一下自己的情况吧,本科和研究生都是通信专业,本科是某 Top2,研究生是香港某大学。了解了通信行业的就业情况和工作内容后,大概今年3月份的时候开始想转互联网。 本人相关的基础情况是:学校学了C++、数据结构与算法以及计算机网络,做大作业和毕业设计用的 python,毕业设计有接触机器学习。 当时是投递暑期实习,没有什么经验,以刷 LeetCode、复习计算机网络和看面经为主,最终面试的情况是: 字节视频架构实习3面挂 阿里蚂蚁金服交叉面挂 腾讯TEG实习offer 因为参加过春招,所...阅读全文

简书 2020-10-20 16:32:58 风平浪静如码

2020-10-18

多种编程语言的hex string转换为字节数组实现方法 hex string也被称为16进制字符串,由"0123456789abcdefABCDEF"中的若干多个字符组成16进制字符串。因为一个16进制字符相当于2进制的4个位(例如:16进制"a"表示为2进制的"1010"),一个字节是8位组成(例如:一个字节用2进制表示为"10101011",用16制表示为"AB")。所以,16进制字符串(需要转换为字节数组)的长度必须是偶数。"AB1"和"efab3"是不符合的,而"AB11"是符合的。 ...阅读全文

简书 2020-10-20 16:32:44 francis_xiiiv

Golang切片的实现

前言:切片的设计思想来源于动态数组,是为了开发者能更加方便地使用使一个数据结构能自动增加和减少,但是切片本身并不是动态数组。1、切片与数组 Go是值传递的,用切片传递数组参数,既可以达到节约内存的目的,也可以达到合理处理好共享内存的问题。但是也有反例,并非所有时候都适合用切片代替数组,因为切片底层数组可能会在堆上分配内存,而且小数组在栈上拷贝的消耗未必比make消耗大。2、切片的数据结构 切片本身并不是动态数组或者数组指针。它内部实现的数据结构通过指针引用底层数组,设定相关属性将数据读写限定在制...阅读全文

简书 2020-10-20 16:32:43 rookie_yuqi

Go程序包开发,读简单配置文件

1、概述 配置文件(Configuration File,CF)是一种文本文档,为计算机系统或程序配置参数和初始设置。传统的配置文件就是文本行,在 Unix 系统中随处可见,通常使用 .conf,.config,.cfg 作为后缀,并逐步形成了 key = value 的配置习惯。在 Windows 系统中添加了对 section 支持,通常用 .ini 作为后缀。面向对象语言的兴起,程序员需要直接将文本反序列化成内存对象作为配置,逐步提出了一些新的配置文件格式,包括 JSON,YAML,TOM...阅读全文

简书 2020-10-20 12:32:42 蜜桃桃的冰淇淋奶昔

如何高效定义和验证restful请求的参数

go-zero针对文本的序列化和反序列化主要在三个地方使用http api请求体的反序列化http api返回体的序列化配置文件的反序列化完整示例可参照下面这篇文章:快速构建高并发微服务1. http api请求体的反序列化在反序列化的过程中的针对请求数据的数据格式以及数据校验需求,go-zero实现了自己的一套反序列化机制1.1 数据格式以订单order.api文件为例type ( createOrderReq struct { token string `path:"token"` // 用...阅读全文

Segmentfault 2020-10-23 14:32:33 kevinwan

Golang 指针

a:=2 fmt.Println(&a) var p1 *int fmt.Println(p1) p1 = &a fmt.Println(p1) fmt.Println(*p1) var p2 **int //指针的指针 fmt.Println(p2) p2 = &p1 //p1指针的地址赋值给p2 fmt.Println(*p2)//p1指针地址的值 fmt.Println(**p2)//a的值 fmt.Printf("%T %T %T",a,p1,p2) 0xc000016068 <nil>...阅读全文

简书 2020-10-20 11:32:40 邦_

golang哈夫曼编码压缩文件代码实现全流程(超详细版)

一、因为比赛的需要研究了一些通用的压缩算法,发现目前各大博客中和相关教程中关于使用golang实现哈夫曼压缩算法的好文章屈指可数,大多是实验性的代码,并没有完全实现压缩文件的所有必要步骤,均存在一定程度的耍流氓行为 1.仅仅介绍了哈夫曼树的机制,并没有算法实现,只知道原理可不一定能写出代码 2.代码实现了哈夫曼树的构造,并且完成编码,存储在string变量中,打印出被哈夫曼编码过的字符串,这其实变相增大了文件的体积,是一种耍流氓,压根没有达到目的,没有理解哈夫曼编码的真正精髓是bit压缩 3.通...阅读全文

简书 2020-10-20 09:32:37 codeMars

openfaas/faas 环境搭建和开发使用

前言 serverless 大环境下出现了 faas,即 function as a service,函数即服务;其意思也非常好理解,就是能将一个函数作为一个服务进行使用,用户只需要编写一个函数功能即可,不需要额外去关心别的东西。https://github.com/openfaas/faas 是其中的一种实现方式。 环境准备 以下环境在 mac 上进行搭建: 首先需要准备 docker 和 kubernetes 的环境,先做 k8s 的环境直接能通过 docker 桌面进行配置,已经算是很方便...阅读全文

简书 2020-10-19 23:32:43 LinkinStar

Golang标准库——regexp

regexp regexp包实现了正则表达式搜索。 正则表达式采用RE2语法(除了\c、\C),和Perl、Python等语言的正则基本一致。 参见http://code.google.com/p/re2/wiki/Syntax。 Syntax 本包采用的正则表达式语法,默认采用perl标志。某些语法可以通过切换解析时的标志来关闭。 单字符: . 任意字符(标志s==true时还包括换行符) [xyz] 字符族 [^xyz] 反向字符族 \d Perl预定义字符族 \D 反向Perl预定义字符族...阅读全文

简书 2020-10-19 23:32:41 DevilRoshan

Golang标准库——runtime

runtime runtime包提供和go运行时环境的互操作,如控制go程的函数。它也包括用于reflect包的低层次类型信息;参见》reflect报的文档获取运行时类型系统的可编程接口。 Environment Variables 下面的环境变量($name或%name%,这依赖于主机的操作系统)控制go程序的运行时行为。它们的含义和用法可能在各发行版之间改变。 环境变量GOGC设置最初的垃圾收集目标百分比。当新申请的数据和前次垃圾收集剩下的存活数据的比率达到该百分比时,就会触发垃圾收集。默认...阅读全文

简书 2020-10-19 23:32:40 DevilRoshan

Golang四大数据类型二:数组类型

数组 数组是指一系列同一类型数据的集合。数组中包含的每个数据被称为数组元素(element),一个数组包含的元素个数被称为数组的长度。 1. 声明方法 [32]byte //长度为32的数组 [2*N] struct {x, y int32} //复杂类型数组 [100]*float64 //指针数组 [3][5]int //二维数组 [2][2][2]float64 //等同于[2]([2]([2]float64)) 数组的长度在声明时就已经确定,后面不能再次修改。可以使用len()函数来求数...阅读全文

简书 2020-10-19 18:32:48 ShawnLee_123

Linux内核中的软中断、tasklet和工作队列详解

软中断、tasklet和工作队列并不是Linux内核中一直存在的机制,而是由更早版本的内核中的“下半部”(bottom half)演变而来。下半部的机制实际上包括五种,但2.6版本的内核中,下半部和任务队列的函数都消失了,只剩下了前三者。 介绍这三种下半部实现之前,有必要说一下上半部与下半部的区别。 上半部指的是中断处理程序,下半部则指的是一些虽然与中断有相关性但是可以延后执行的任务。举个例子:在网络传输中,网卡接收到数据包这个事件不一定需要马上被处理,适合用下半部去实现;但是用户敲击键盘这样的...阅读全文

简书 2020-10-19 18:32:48 linux大本营

关于golang之排序使用

golang标准库实现了许多常用的排序方法,比如对整数序列排序:sort.Ints(),那么如果对自定义的数据结构排序怎么做呢?比如对一个用户列表,按他们的积分排序:首先定义数据结构,为了能清楚说明问题,只给两个字段。 type User struct { Name string Score int}type Users []User golang中想要自定义排序,自己的结构要实现三个方法: // 摘自: $GOROOT/src/sort/sort.gotype Interface interf...阅读全文

简书 2020-10-19 18:32:40 MO_ON_e503