-
VS Code调试Golang提示Failed to continue:Check the debug cons
所属栏目:[大数据] 日期:2020-12-16 热度:121
解决方法: 打开调试面板? VSCode-查看-调试 添加调试目标 在"没有调试"的下拉框中点击"添加配置.."添加目标调试配置 在"env": {},中加入%go_path即可解决。 路径斜线注意要以 { // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲[详细]
-
golang 反射解惑
所属栏目:[大数据] 日期:2020-12-16 热度:166
Type和Kind的区别 直接看例子: type Myint inttype Person struct {}func main() { var myint Myint= 1 var person Person= Person{} s := 1 var intPtr =s mySlice := []string{} myMap := map[string]int{} myintType := reflect.TypeOf(myint) personTyp[详细]
-
理解Golang包导入
所属栏目:[大数据] 日期:2020-12-16 热度:99
Golang使用包(package)这种语法元素来组织源码,所有语法可见性均定义在package这个级别,与Java 、python等语言相比,这算不上什么创新,但与C传统的include相比,则是显得“先进”了许多。 Golang中包的定义和使用看起来十分简单: 通过package关键字定[详细]
-
golang interface接口
所属栏目:[大数据] 日期:2020-12-16 热度:128
package mainimport "fmt"type Shaper interface {Area() float32}type Square struct {side float32}func (sq *Square) Area() float32 {return sq.side * sq.side}func main() {sq1 := new(Square)sq1.side = 5var areaIntf ShaperareaIntf = sq1// shorte[详细]
-
golang:IO File 操作
所属栏目:[大数据] 日期:2020-12-16 热度:133
1,创建文件 /*createFile 创建文件 | 参数说明:dir 路径,fileName 文件名 */func createFile(dir,fileName string) (*os.File,error) {var err error//目录不存在则创建if _,err = os.Stat(dir); err != nil {if err = os.MkdirAll(dir,0777); err != nil[详细]
-
第一篇:初始Golang
所属栏目:[大数据] 日期:2020-12-16 热度:182
Golang简介 编程语言已经非常多,偏性能敏感的编译型语言有 C、C++、Java、C#、Delphi和Objective-C 等,偏快速业务开发的动态解析型语言有PHP、Python、Perl、Ruby、JavaScript和Lua等,面向特 定领域的语言有Erlang、R和MATLAB等,那么我们为什么需要 Go这[详细]
-
Golang中的channel代码示例----无缓冲、有缓冲、range、close
所属栏目:[大数据] 日期:2020-12-16 热度:132
// code_043_channel_unbuffered project main.go package main import ( "fmt" "time" ) func main() { c := make(chan int,0) //无缓冲的通道 //内置函数 len 返回未被读取的缓冲元素数量, cap 返回缓冲区大小 fmt.Printf("len(c)=%d,cap(c)=%dn",len(c)[详细]
-
golang的Timer定时器
所属栏目:[大数据] 日期:2020-12-16 热度:175
// code_047_Timer project main.go package main import ( "fmt" "time" ) func main() { timer1 := time.NewTimer(time.Second * 2) t1 := time.Now() fmt.Printf("t1:%vn",t1) t2 := -timer1.C fmt.Printf("t2:%vn",t2) //如果只是想单纯的等待的话,可[详细]
-
使goroutine同步的方法总结
所属栏目:[大数据] 日期:2020-12-16 热度:65
前言: 在前面并发性能对比的文章中,我们可以看到Golang处理大并发的能力十分强劲,而且开发也特别方便,只需要用go关键字即可开启一个新的协程。 但当多个goroutine同时进行处理的时候,就会遇到同时抢占一个资源的情况(并发都会遇到的问题),所以我们希望[详细]
-
VS code golang 开发环境搭建
所属栏目:[大数据] 日期:2020-12-16 热度:168
1、 Go环境安装 打开https://www.golangtc.com/download,选择对应的平台,下载最新版本Go安装 ? ? 2、 下载后直接双击msi文件安装,默认安装在 C:Go? 安装完成后默认会在环境变量 Path 后添加 Go 安装目录下的 bin 目录 C:Gobin,并添加环境变量 GOROO[详细]
-
go 函数
所属栏目:[大数据] 日期:2020-12-16 热度:87
// func test(){// }// func test(a int,b int){// }// func test(a int,b int) int{// }func test(a int,b int ) (int,int){}func test(a,b int){} 花括号必须与函数声明在同一行,这种写法是错误的 func test(){} golang函数特点 1 不支持重载,一个包中不[详细]
-
Golang 调用 Python 代码
所属栏目:[大数据] 日期:2020-12-16 热度:133
go 中的 cgo 模块可以让 go 无缝调用 c 或者 c++ 的代码,而 python 本身就是个 c 库,自然也可以由 cgo 直接调用,前提是指定正确的编译条件,如 Python.h 头文件(),以及要链接的库文件。本文以 Ubuntu 18.04 作为开发和运行平台进行演示。 其实在使用 c[详细]
-
【Go】sync.Mutex和sync.RWMutex
所属栏目:[大数据] 日期:2020-12-16 热度:182
Go语言宣扬用通讯的方式共享数据。 Go语言以独特的并发编程模型傲视群雄,与并发编程关系最紧密的代码包就是sync包,意思是同步。同步的用途有两个,一个是避免多个线程在同一时刻操作同一个数据块,另一个是协调多个线程,以避免它们在同一时刻执行同一块代[详细]
-
Golang Gin 项目包依赖管理 godep 使用
所属栏目:[大数据] 日期:2020-12-16 热度:108
Golang Gin 项目包依赖管理 godep 使用 标签(空格分隔): Go 在按照github.com/tools/godep文档go get完包以后,调整项目结构为 $GOPATH/src/$PROJECT_NAME/ ,同时使项目编译没有问题。执行 godep save 命令,出现了一系列包缺失的问题: github.com/camp[详细]
-
Golang Gin 项目使用 Swagger
所属栏目:[大数据] 日期:2020-12-16 热度:112
Golang Gin 项目使用 Swagger 标签(空格分隔): Go 首先需要 github.com/swaggo/gin-swagger 和 github.com/swaggo/gin-swagger/swaggerFiles (参见gin-swagger)。 然后根据 github.com/swaggo/swag/cmd/swag文档获取到swag工具;执行 swag init 在项目[详细]
-
golang gopacket网络抓包和分析
所属栏目:[大数据] 日期:2020-12-16 热度:101
gopacket 是golang语言使用的网络数据抓取和分析的工具包。 本文简单介绍如何使用gopacket进行网络抓包。 下载gopacket # go get [email?protected]:google/gopacket.git Demo 代码中,抓取与端口3306相关的数据,也就是mysql通信数据。 package mainimport([详细]
-
golang gorilla websocket例子
所属栏目:[大数据] 日期:2020-12-16 热度:116
WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。 WebSocket通信协议于2011年被IETF定为标准RFC 6455,并被RFC7936所补充规范。 在golang语言中,目前有两种比较常用的实现方[详细]
-
golang类型检测
所属栏目:[大数据] 日期:2020-12-16 热度:102
要求是对任意的输入类型,对其进行要求的类型的检测,防止不正确的参数输入到后续的函数中 package main import ( "fmt" "reflect" ) func main(){ var a int=8; var b string="as" Vaild(a,"string") Vaild(b,"string") } func Vaild(params interface{},t[详细]
-
golang http服务器跨域问题解决
所属栏目:[大数据] 日期:2020-12-16 热度:62
func main() { openHttpListen()} func openHttpListen() { http.HandleFunc( " / " ,receiveClientRequest) fmt.Println( " go server start running... " ) err : = http.ListenAndServe( " :9090 " ,nil) if err != nil { log.Fatal( " ListenAndServe: "[详细]
-
Golang FlameGraph(火焰图)
所属栏目:[大数据] 日期:2020-12-16 热度:68
1.安装组件 安装go-torch go get github.com/uber/go-torch 安装 FlameGraph cd $WORK_PATH git clone https://github.com/brendangregg/FlameGraph.git export PATH=$PATH:$WORK_PATH/FlameGraph-master 安装graphviz yum install graphviz(CentOS,Redhat)[详细]
-
Golang使用HTTP/2的正确方法
所属栏目:[大数据] 日期:2020-12-16 热度:69
golang在http/2这块做的比较早,但是因为历史原因导致API比较令人迷惑,网上很多同学在抱怨。 我这里记录一下如何正确的实施HTTP/2的客户端与服务端。 HTTP/2协议 HTTP/2协议握手分2种方式,一种叫h2,一种叫h2c。 h2要求必须使用TLS加密,在TLS握手期间会顺[详细]
-
Golang的优雅重启
所属栏目:[大数据] 日期:2020-12-16 热度:192
更新(2015年4月):Florian von Bock 已将本文中描述的内容转换为一个名为 endless 的优秀Go包?。 如果您有Golang HTTP服务,可能需要重新启动它以升级二进制文件或更改某些配置。 如果你(像我一样)因为网络服务器处理它而优雅地重新启动是理所当然的,你[详细]
-
golang接口的使用(练习一)
所属栏目:[大数据] 日期:2020-12-16 热度:95
在go语言中,一个类只要实现了接口要求的所有函数,我们就说这个类实现了这个接口。 golang接口赋值实现方式一:将对象实例赋值给接口 package mainimport "fmt"//定义一个Animal接口,实现飞和跑的功能type Animal interface { Fly() Run()}//定义一个Bird类[详细]
-
golang中Any类型使用及空接口中类型查询
所属栏目:[大数据] 日期:2020-12-16 热度:75
golang中Any类型使用及类型查询 1.Any类型 GO语言中任何对象实例都满足空接口interface{},空接口可以接口任何值 var v1 interface{} = 1 var v2 interface{} = "abc" var v3 interface{} = 2.345 var v4 interface{} = make(map[..]...) .... 2.1 关于空接口[详细]
-
测试修改并编译golang源码
所属栏目:[大数据] 日期:2020-12-16 热度:73
最近为了做Hyperledger Fabric国密改造,涉及到了golang源码的改动。特将操作过程整理如下,以供参考: golang的源码安装其实比较简单,只需运行源码包中的脚本src/all.bash,等到出现类似以下字样就安装好了: Installed Go for linux/amd64 in xxx(目录地[详细]
