-
golang中make和new的区别示例详解
所属栏目:[大数据] 日期:2020-12-16 热度:175
前言 本文主要给大家介绍了关于golang中make和new区别的相关内容,分享出来供大家参考学习,话不多说了,来一起看看详细的介绍: new 和 make 都可以用来分配空间,初始化类型,但是它们确有不同。 new(T) 返回的是 T 的指针 new(T) 为一个 T 类型新值分配空[详细]
-
基于golang时间转换的问题
所属栏目:[大数据] 日期:2020-12-16 热度:198
一般在获取到时间字符串,需要将时间字符串格式化为golang的"time.Time"对象的时候,通常有2个函数,分别是。 time.Parse(layout,value string) (Time,error)time.ParseInLocation(layout,value string,loc *Location) (Time,error) 两个函数相比,不一样的[详细]
-
golang中defer的关键特性示例详解
所属栏目:[大数据] 日期:2020-12-16 热度:89
前言 大家都知道golang的defer关键字,它可以在函数返回前执行一些操作,最常用的就是打开一个资源(例如一个文件、数据库连接等)时就用defer延迟关闭改资源,以免引起内存泄漏。本文主要给大家介绍了关于golang中defer的关键特性,分享出来供大家参考学习[详细]
-
深入理解Golang的单元测试和性能测试
所属栏目:[大数据] 日期:2020-12-16 热度:65
前言 大家做开发的应该都知道,在开发程序中很重要的一点是测试,我们如何保证代码的质量,如何保证每个函数是可运行,运行结果是正确的,又如何保证写出来的代码性能是好的,我们知道单元测试的重点在于发现程序设计或实现的逻辑错误,使问题及早暴露,便于[详细]
-
在go语言中安装与使用protobuf的方法详解
所属栏目:[大数据] 日期:2020-12-16 热度:121
简介 本文主要给大家介绍了关于go语言安装使用protobuf的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 protobuf是Google开发出来的一个语言无关、平台无关的数据序列化工具,在rpc或tcp通信等很多场景都可以使用。通俗来讲[详细]
-
Go语言interface 与 nil 的比较
所属栏目:[大数据] 日期:2020-12-16 热度:189
interface简介 Go语言以简单易上手而著称,它的语法非常简单,熟悉C++,Java的开发者只需要很短的时间就可以掌握Go语言的基本用法。 interface是Go语言里所提供的非常重要的特性。一个interface里可以定义一个或者多个函数,例如系统自带的io.ReadWriter的定[详细]
-
Go语言到底有没有引用传参(对比 C++ )
所属栏目:[大数据] 日期:2020-12-16 热度:106
C++ 中三种参数传递方式 值传递: 最常见的一种传参方式,函数的形参是实参的拷贝,函数中改变形参不会影响到函数外部的形参。一般是函数内部修改参数而又不希望影响到调用者的时候会采用值传递。 指针传递 形参是指向实参地址的一个指针,顾名思义,在函数[详细]
-
关于Golang中for-loop与goroutine的问题详解
所属栏目:[大数据] 日期:2020-12-16 热度:171
背景 最近在学习MIT的分布式课程6.824的过程中,使用Go实现Raft协议时遇到了一些问题。分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 参见如下代码: for i := 0; i len(rf.peers); i++ { DPrintf("i = %d",i) if i == rf.me { DPrintf[详细]
-
详解 Go 语言中 Map 类型和 Slice 类型的传递
所属栏目:[大数据] 日期:2020-12-16 热度:191
Map 类型 先看例子 m1: func main() { m := make(map[int]int) mdMap(m) fmt.Println(m)}func mdMap(m map[int]int) { m[1] = 100 m[2] = 200} 结果是 map[2:200 1:100] 我们再修改如下 m2: func main() { var m map[int]int mdMap(m) fmt.Println(m)}func[详细]
-
golang模拟实现带超时的信号量示例代码
所属栏目:[大数据] 日期:2020-12-16 热度:141
前言 最近在写项目,需要用到信号量等待一些资源完成,但是最多等待N毫秒。在看本文的正文之前,我们先来看下C语言里的实现方法。 在C语言里,有如下的API来实现带超时的信号量等待: SYNOPSIS #include pthread.h int pthread_cond_timedwait(pthread_cond_[详细]
-
如何利用Golang写出高并发代码详解
所属栏目:[大数据] 日期:2020-12-16 热度:109
前言 之前一直对Golang如何处理高并发http请求的一头雾水,这几天也查了很多相关博客,似懂非懂,不知道具体代码怎么写 下午偶然在开发者头条APP上看到一篇国外技术人员的一篇文章用Golang处理每分钟百万级请求,看完文章中的代码,自己写了一遍代码,下面自己写下[详细]
-
Golang中的参数传递示例详解
所属栏目:[大数据] 日期:2020-12-16 热度:166
前言 本文主要给大家介绍了关于Golang参数传递的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 关于参数传递,Golang文档中有这么一句: after they are evaluated,the parameters of the call are passed by value to the fun[详细]
-
使用dep 配置golang 开发环境的操作方法
所属栏目:[大数据] 日期:2020-12-16 热度:89
概要 golang 的包管理一直没有官方统一的解决方案,因此也产生了很多非官方的包管理工具。 之前我一直使用的 gb(https://getgb.io/) 能够很好的隔开各个 golang 工程,当时 gb 创建的工程不太融入已有的 GOPATH 中。 gb 相当于是把工程的目录作为 GOPATH,[详细]
-
Golang中List的实现方法示例详解
所属栏目:[大数据] 日期:2020-12-16 热度:113
前言 为了快速回顾Go基本的语法知识,打算用Go中的基本语法以及特性来实现一些常见的数据结构和排序算法,通过分析如何实现一些基本的数据结构,可以很快学习Go的语法特性。记忆更加深刻,掌握更加迅速。这是我认为学习一门新语言入门最好的方式。这也是方便[详细]
-
Golang中Set类型的实现方法示例详解
所属栏目:[大数据] 日期:2020-12-16 热度:55
前言 本篇主要给大家讲述了如何利用Go语言的语法特性实现Set类型的数据结构,分享出来供大家参考学习,话不多说了,来一起看看详细的介绍吧。 需求 对于Set类型的数据结构,其实本质上跟List没什么多大的区别。无非是Set不能含有重复的Item的特性,Set有初始[详细]
-
Golang中数据结构Queue的实现方法详解
所属栏目:[大数据] 日期:2020-12-16 热度:157
前言 本文主要给大家介绍了关于Golang中数据结构Queue实现的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 需求 队列的特性较为单一,基本操作即初始化、获取大[详细]
-
golang将多路复异步io转成阻塞io的方法详解
所属栏目:[大数据] 日期:2020-12-16 热度:105
前言 本文主要给大家介绍了关于golang 如何将多路复异步io转变成阻塞io的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: package mainimport ( "net")func handleConnection(c net.Conn) { //读写数据 buffer := make([]byte,10[详细]
-
利用Golang实现TCP连接的双向拷贝详解
所属栏目:[大数据] 日期:2020-12-16 热度:198
前言 本文主要给大家介绍了关于Golang实现TCP连接的双向拷贝的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 最简单的实现 每次来一个Server的连接,就新开一个Client的连接。用一个goroutine从server拷贝到client,再用另外[详细]
-
Go 语言中gin使用gzip压缩遇到的问题
所属栏目:[大数据] 日期:2020-12-16 热度:138
最近学习go语言写了个 成都房地产薪酬 网站,抓取网上的招聘信息并进行统计。中间遇到一些坑在这里记录下来方便以后查阅 gzip压缩是每个web应用必不可少的,这项目使用gin作为web框架,gin支持使用中间件,github上有实现好的gzip中间件:gin-contrib/gzip 安[详细]
-
Go语言的变量、函数、Socks5代理服务器示例详解
所属栏目:[大数据] 日期:2020-12-16 热度:76
Go语言中变量的声明和JavaScript很像,使用var关键字,变量的声明、定义有好几种形式 1. 变量和常量 // 声明并初始化一个变量var m int = 10// 声明初始化多个变量var i,j,k = 1,2,3// 多个变量的声明(注意小括号的使用)var( no int name string)// 声明时不[详细]
-
Golang如何实现任意进制转换的方法示例
所属栏目:[大数据] 日期:2020-12-16 热度:92
前言 最近因为工作的需要,需要写个短链服务,用到了10-62进制,网上找了一个,可以转换最多76位进制的博客,现在分享出来,下面话不多说了,来一起看看详细的介绍吧。 压缩数据用,无损压缩 示例代码: package mainimport ( "fmt" "math" "strconv" "strin[详细]
-
golang解析网页利器goquery的使用方法
所属栏目:[大数据] 日期:2020-12-16 热度:105
前言 本文主要给大家介绍了关于golang解析网页利器goquery使用的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 java里用Jsoup,nodejs里用cheerio,都可以相当方便的解析网页,在golang语言里也找到了一个网页解析的利器,相[详细]
-
Golang字符串变位词示例详解
所属栏目:[大数据] 日期:2020-12-16 热度:112
实现目标 本文的目标是写出一个函数 anagram(s,t) 去判断两个字符串是否是颠倒字母顺序构成的。下面话不多说了,来一起看看详细的介绍吧。 GoLang 实现 func solution(s,t string)bool{ if s == t { return true } length := len(s) if length != len(t) { r[详细]
-
Golang实现字符串倒序的几种解决方案
所属栏目:[大数据] 日期:2020-12-16 热度:50
前言 本文主要给大家介绍了关于Golang实现字符串倒序的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 字符串倒置如下: Hello World -- dlroW olleH 解决方案1: length := len(str) array := make([]string,length) for i,v :=[详细]
-
Golang利用自定义模板发送邮件的方法详解
所属栏目:[大数据] 日期:2020-12-16 热度:155
前言 在几周前,我开始工作于一个证券投资组合网站。虽然我只能使用 React 完成整个网站,但我决定使用 Go 来创建一个可以处理某些任务(例如发送 email)的 API 服务器,相信这是一个很好的做法。 我其中的一个页面是一个 contact 页面,目前看起来像这样:[详细]
