-
Go实战--golang中使用号称全世界最快的JSON解析器json-iterator(
所属栏目:[大数据] 日期:2020-12-16 热度:54
生命不止,继续go go go!!! 号外号外,差不一条广告,我的博客六月到十一月UV的地域分布: golang中的使用json一点也不陌生,golang为我们提供了官方的encoding/json: Go语言学习之encoding/json包(The way to go) Go实战–net/http中JSON的使用(The way to[详细]
-
go 时间篇
所属栏目:[大数据] 日期:2020-12-16 热度:72
Go的time包是标准库中的包之一 不用说,几乎是开发必须用到的包之一。time包的说明文档在: http://golang.org/pkg/time/ 先注意下Overview中的一句话: The calendrical calculations always assume a Gregorian calendar. 这个包的时间计算式是基于格里历[详细]
-
Golang使用共享库(shared library)以及Golang生成C可调用的动态
所属栏目:[大数据] 日期:2020-12-16 热度:159
Golang类似于C的静态语言,效率也接近于C,如果Golang也可以导出可供C调用的库,那可以和很多高级语言say goodbye了,goodbye似乎又有点武断,但至少说,Golang可以做很多事,而且效率优于很多高级语言,这样说应该没有问题。 接下来,就从三个方面分别来介[详细]
-
Golang生成共享库(shared library)以及Golang生成C可调用的动态
所属栏目:[大数据] 日期:2020-12-16 热度:82
Golang类似于C的静态语言,效率也接近于C,如果Golang也可以导出可供C调用的库,那可以和很多高级语言say goodbye了,goodbye似乎又有点武断,但至少说,Golang可以做很多事,而且效率优于很多高级语言,这样说应该没有问题。 接下来,就从三个方面分别来介[详细]
-
Go工具和调试详解
所属栏目:[大数据] 日期:2020-12-16 热度:83
工具集 go build -gcflags: 传递给编译器的参数 -ldflags: 传递给链接器的参数 -work: 查看编译临时目录 -race: 允许数据竞争检测(仅支持amd64) -n: 查看但不执行编译指令 -x: 查看并执行编译命令 -a: 强制重新编译所有依赖包 -v: 查看被编译的包名,包括依[详细]
-
Golang Tools 介绍
所属栏目:[大数据] 日期:2020-12-16 热度:118
Golang Tools 介绍 go 安装之后内置了很多工具以帮助开发 gofmt Usage: gofmt main.go :格式化 main.go 文件的源码输出到终端 gofmt -w main.go :格式化 main.go 文件并回写到原文件 gofmt -w Tasks :格式化 Tasks 目录下的所有文件并且将格式化内容保存到对[详细]
-
[Golang]通过interface实现"泛型"的用例
所属栏目:[大数据] 日期:2020-12-16 热度:127
目前Golang最新版本为1.9,暂时不支持泛型。 不过可以通过interface实现”泛型编程”效果,下面以slice类型数据的添加/删除元素为例, 供大家参考一下: package main import ( "errors" "fmt" ) var ( ERR_ELEM_EXISTS = errors.New( "element exits." ) ERR_[详细]
-
golang中可变长参数的使用
所属栏目:[大数据] 日期:2020-12-16 热度:190
起因: 使用的Redis的时候,需要使用LPUSH 往一个key中一次写入多个value 我使用的是garyburd/redigo 这个库 函数定义如下 // Do sends a command to the server and returns the received reply. func Do (commandName string,args ... interface {}) (reply[详细]
-
Golang语法的踩坑总结(持续更新中)
所属栏目:[大数据] 日期:2020-12-16 热度:61
*本来这篇是想写docker的基本操作总结的。。。想想还是写这个吧。。。→_→* 变量声明使用 := 方式时,左值必须是未声明的,否则会出现编译错误 //.main.go:8:4: no new variables on left side of := package main import "fmt" func main() { var a int =[详细]
-
Golang原理之goroutine与channel
所属栏目:[大数据] 日期:2020-12-16 热度:119
常见并发编程模型分类 并发编程模型,顾名思义就是为了解决高并发充分利用多核特性减少CPU等待提高吞吐量而提出的相关的编程范式。目前为止,我觉得比较常见的并发编程模型大致可以分为两类: 基于消息(事件)的活动对象 基于CSP模型的协程的实现 其中基于[详细]
-
Golang与C互用以及调用C的so动态库和a静态库
所属栏目:[大数据] 日期:2020-12-16 热度:197
Golang与C的关系非常密切,下面主要介绍在Golang中使用C。 一. Golang中嵌入C代码 1 package main 2 3 //#include stdio.h 4 //#include stdlib.h 5 /* 6 void Hello(char *str) { 7 printf("%sn",str); 8 } 9 */ 10 import "C" //假设把C当成包,其实有点[详细]
-
golang基础知识点(持续更新中......)
所属栏目:[大数据] 日期:2020-12-16 热度:68
我为什么学习 go语言 第一次听说 golang 应该是在2014年,从朋友那里听说。是 Google 开发的。但是作为一名比较笨的 it民工 来讲自学一门新语言花费时间和精力太大。也正是因为国内公司现在用的比较少,所以一直没有去了解。换了新公司后因为工作需要不得不[详细]
-
Golang 基础语法-基本变量(2)
所属栏目:[大数据] 日期:2020-12-16 热度:190
Golang 基础语法-基本变量(2) 变量的零值说明 数值类型变量的零值为 0 布尔类型变量的零值为 false 字符串类型变量的零值为 "” 变量的类型转换语法 golang 中不同类型之间的变量赋值需要显式的转换 //语法格式 T(v) 将 v 转换为 类型 Tvar i int = 32var f[详细]
-
微信小程序分享到朋友圈之曲线救国
所属栏目:[大数据] 日期:2020-12-16 热度:129
遇到的问题 经过多次重大更新,微信始终没有开放小程序直接分享到朋友圈的相关api。 曲线救国 我们直接开门见山,用间接的方式来实现微信小程序分享到朋友圈 这里先来罗列一下实现思路 通过微信api申请小程序二维码 获取小程序二维码接口文档 下载二维码到服[详细]
-
Go实战--golang中使用gRPC和Protobuf实现高性能api(golang/proto
所属栏目:[大数据] 日期:2020-12-16 热度:154
生命不止,继续 go go go !!! 号外号外,插播一条广告,通过博客的uv可以看到周五,程序员是不怎么干活的: 本篇博客,使用gRPC和Protobuf,实现所谓的高性能api。 protobuf golang中的protobuf大家应该不会很陌生,之前也有博客介绍过: Go实战–go中使用go[详细]
-
golang类和结构体
所属栏目:[大数据] 日期:2020-12-16 热度:106
golang结构体和类 golang中并没有明确的面向对象的说法,实在要扯上的话,可以将struct比作其它语言中的class。 类声明 type Poem struct { Title string Author string intro string} 这样就声明了一个类,其中没有public、protected、private的的声明。 go[详细]
-
golang 包原理
所属栏目:[大数据] 日期:2020-12-16 热度:149
1、首先是包的引入原理 程序的初始化和执行都起始于main包。如果main包还导入了其它的包,那么就会在编译时将它们依次导入。有时一个包会被多个包同时导入,那么它只会被导入一次(例如很多包可能都会用到fmt包,但它只会被导入一次,因为没有必要导入多次)[详细]
-
golang数组和切片
所属栏目:[大数据] 日期:2020-12-16 热度:147
1、数组 golang中的数组是一种由固定长度和固定对象类型所组成的数据类型。例如下面: var a [4]int a是一个拥有4个int类型元素的数组。当a一旦被声明之后,元素个数就被固定了下来,在a这个变量的生命周期之内,元素个数不会发生变化。而此时a的类型就是[4][详细]
-
golang make和new
所属栏目:[大数据] 日期:2020-12-16 热度:107
Go语言中的内建函数new和make是两个用于内存分配的原语(allocation primitives)。对于初学者,这两者的区别也挺容易让人迷糊的。简单的说,new只分配内存,make用于slice,map,和channel的初始化。 1. new函数 The new build-in function allocates memor[详细]
-
go局部变量的存储空间是堆还是栈?
所属栏目:[大数据] 日期:2020-12-16 热度:184
go局部变量的存储空间是堆还是栈? 编译器会自动选择在栈上还是在堆上分配局部变量的存储空间,但可能令人惊讶的是,这个选择并不是由用var还是new声明变量的方式决定的。 var global *intfunc f() { var x int x = 1 global = x}func g() { y := new(int) *[详细]
-
golang 接口
所属栏目:[大数据] 日期:2020-12-16 热度:177
在本章中,将要学习一个新的领域。我们将学习使用面向对象编程的灵魂去构建程序,让我们一起做这件事吧。 What is an interface? 简单的说,接口就是一组方法签名的集合。我们使用一个接口来识别一个对象的能够进行的操作。 举例来说,在以前的章节中,我们[详细]
-
golang值类型的变量和指针类型的变量区别
所属栏目:[大数据] 日期:2020-12-16 热度:141
值类型的变量和指针类型的变量 先声明一个结构体: type T struct { Name string}func (t T) M1() { t.Name = "name1"}func (t *T) M2() { t.Name = "name2"} M1() 的接收者是值类型 T,M2() 的接收者是值类型 *T,两个方法内都是改变Name值。 下面声明一个 T[详细]
-
golang channel
所属栏目:[大数据] 日期:2020-12-16 热度:115
golang channel 有缓冲 与 无缓冲 是有重要区别的 一个是同步的 一个是非同步的 c1:=make(chan int) 无缓冲 c2:=make(chan int,1) 有缓冲 无缓冲的 不仅仅是 向 c1 通道放 1 而是 一直要有别的携程 -c1 接手了 这个参数,那么c1-1才会继续下去,要不然就一直[详细]
-
golang context
所属栏目:[大数据] 日期:2020-12-16 热度:81
package mainimport ( "context" "fmt" "net/http" _ "net/http/pprof" "time")func main() { go http.ListenAndServe(":8080",nil) ctx,_ := context.WithTimeout(context.Background(),(10 * time.Second)) go testA(ctx) select {}}func testA(ctx contex[详细]
-
Jaeger源码分析——服务注册与服务发现
所属栏目:[大数据] 日期:2020-12-16 热度:120
原文:Jaeger源码分析——服务注册与服务发现 声明 ?Jaeger官方并没有明确说明其 服务注册和服务发现 的具体使用和介绍,这部分功能是在分析源码的时候,发现其原理与 服务注册和服务发现 类似,所以结合自己对服务注册和服务发现的认识,做一次总结,有错还[详细]
