Go语言中文网 为您找到相关结果 139

windows下gopath设置

下载了go语言的安装包, 然后安装, 装完了需要设置三个地方: 1. 在windows的PATH变量中添加go的可执行文件所在的目录: [javascript] view plaincopy PATH=C:\Go\bin;其他设置; 2. 设置 GOROOT , 这个好理解, 直接设置成 C:\Go 即可 [javascript] view plaincopy GOROOT=C:\Go 3. 设置GOPATH, 这个很难理解, 我的尝试: [python] view plaincopy GOPATH= #就是等于空, 这个是可以在系统环境变量中设置的, 结果报错go get 包的时候报错说$GOPATH未设置 GOPATH=; #就是等于一个分号(;), go get 包开始可以运行, 不报...阅读全文

博文 2015-02-14 03:00:01 rojas

golang 命令行处理

1.命令行参数(命令行参数是指定程序运行参数的一个常见方式。例如,go run hello.go,程序 go 使用了 run 和 hello.go 两个参数。) package main import "os" import "fmt" func main() { //os.Args 提供原始命令行参数访问功能。注意,切片中的第一个参数是该程序的路径,并且 os.Args[1:]保存所有程序的的参数。 argsWithProg := os.Args argsWithoutProg := os.Args[1:] //你可以使用标准的索引位置方式取得单个参数的值。 arg := os.Args[3] fmt.Println(argsWithProg) fmt.Println(argsWithou...阅读全文

博文 2015-04-21 03:00:01 benlightning

Deno 并不是下一代 Node.js

这几天前端圈最火的事件莫过于 ry(Ryan Dahl) 的新项目 deno 了,很多 IT 新闻和媒体都用了标题:“下一代 Node.js”。这周末读了一遍 deno 的源码,特意写了这篇文章。长文预警(5000字,11图)。 0. 为什么开发 Deno? 这是我上周做的一张图,介绍了 JavaScript 的发展简史。刚才修改了一下,添加了对 Node.js 和 Deno 发布时间的标注。Node.js 和 Deno 分别是 Ryan Dahl 在 2009 年和 2018 年,基于当年最新的前端技术开发的非浏览器 JavaScript 运行时。 Ryan Dahl 开发 deno 并不是因为 “just for fun”,也不是为了取代 node。下面慢慢解释。 1. 目前 deno ...阅读全文

博文 2018-06-04 11:34:38 justjavac

Google:C++、Java、Scala、Go四种语言性能对比

谷歌发布了一个研究报告,仔细比较了C + +、Java、Scala和谷歌自己拥有的Go编程语言的性能。 根据谷歌的测试报告(PDF格式),C + +是四种语言中运行速度最快的。 但是该文件同时也指出,优化代码相对困难,这需要相当的努力、熟练的水准,不是平均水平的程序员所能达到。 Go旨在消除至少这个限制一些,但它仍然是年轻的(它首次亮相大约一年,不过前半年只是一种“实验性”语言年),并在大多数谷歌测试中表现出,它落后于C + +以及Java和Scala。 “Go提供了有趣的语言特性:这是一个简洁和标准化的符号,”阅读了报告, GOOGLE创始人罗伯特亨特写下:“[但是]语言编译器仍然是不成熟的:无论是性能和二进制大小方面都反应了该问题。” 这就是说,Go的编译比其他三种语言都要快。 Java...阅读全文

博文 2014-10-11 03:00:00 jianyi7659

Golang sync.WaitGroup的用法

0x01 介绍经常会看到以下了代码: 12345678910111213package mainimport ( "fmt" "time")func main(){ for i := 0; i < 100 ; i++{ go fmt.Println(i) } time.Sleep(time.Second)} 主线程为了等待goroutine都运行完毕,不得不在程序的末尾使用time.Sleep() 来睡眠一段时间,等待其他线程充分运行。对于简单的代码,100个for循环可以在1秒之内运行完毕,time.Sleep() 也可以达到想要的效果。 但是对于实际生活的大多数场景来说,1秒是不够的,并且大部分时候我们都无法预知for循环内代码运行时间的长短。这时候就不能使用time.Sleep() 来...阅读全文

博文 2018-05-17 09:54:29 马谦的博客

golang实现http的get和post

golang要请求远程网页,可以使用net/http包中的client提供的方法实现。查看了官方网站有一些示例,没有太全面的例子,于是自己整理了一下。 get请求 get请求可以直接http.Get方法,非常简单。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 func httpGet() { resp, err := http.Get("http://www.01happy.com/demo/accept.php?id=1") if err != nil { // handle error } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { // handle ...阅读全文

博文 2016-11-17 02:00:03 徐学良

golang可以写前端,你澡吗?

引入:GopherJS:Go代码转为JS,在浏览器中运行Go代码(公司群发的,感觉有意思就随意写了2行。) 以下文章转载: GopherJS 可以把 Go 代码编译成纯 JS 代码。其主要目的是让你有机会用 Go 语言编写前端代码,并且可以运行在所有浏览器中。可以到这里试试 GopherJS Playground。 有了这个东东,你可利用 Go的优雅的类型系统和其他编译时(compile-time)检查,尤其是对大型项目,在Bug侦测有重大影响、有重构的能力。想想看, JS 方法是不是要经常要额外处理一些遗留参数,因为你并不确切知道其他某些代码是不是仍然在按老方法调用。如果没调用,GopherJS 会告诉你,你就可以确信和这样的Bug说拜拜了。 设计目标 生成代码的性能 (查看 Joseph...阅读全文

博文 2015-11-06 15:00:02 jinlong0326

Go 语言编译运行的小问题

载:http://c2pblog.sinaapp.com/archives/355 简单谈一谈Go语言的编译运行。 golang 和C/C++都是编译型的语言,首先要写好源文件,然后编译,最后运行。这几天在用IDE的时候一直都是一键运行的,没有怎么好好理解编译和运行之间的区别。而在Linux下面则出现了一些小问题不得不重新思考这个区别。虽然说golang编译速度很快,但是我们实际使用的时候必须是要用可执行文件的,你给我一个源代码是没有意义的,而在实际项目中,你的代码会跑在很多机子上面,每一分钟都会运行很多很多次,然后这种情况下如果你在编译的时候都会浪费掉时间的话,那么这个成本将会很大。于是我们必须做一些对应的处理,将golang源文件先编译成可执行文件,然后直接在使用的时候去执行就好。 这时...阅读全文

博文 2015-03-13 10:00:02 yugongpeng_blog

Golang 编译成 DLL 文件

首先撰写 golang 程序 exportgo.go: package main import "C" import "fmt" //export PrintBye func PrintBye() { fmt.Println("From DLL: Bye!") } //export Sum func Sum(a int, b int) int { return a + b; } func main() { // Need a main function to make CGO compile package as C shared library } 编译成 DLL 文件: go build -buildmode=c-shared -o exportgo.dll exportgo.go 编译...阅读全文

博文 2018-02-22 22:33:04 八风不动

golang tar gzip 压缩,解压(含目录文件)

tar是用于文件归档,gzip用于压缩。仅仅用tar的话,达不到压缩的目的。我们常见的tar.gz就是用gzip压缩生成的tar归档文件。 go实现tar压缩与解压与zip类似,区别在于tar需要使用gzip进行处理。tar与zip的Header不同。代码如下 package tartest import ( "archive/tar" "compress/gzip" "io" "os" "strings" ) //压缩 使用gzip压缩成tar.gz func Compress(files []*os.File, dest string) error { d, _ := os.Create(dest) defer d.Close() gw := gzip.NewWriter(d) defe...阅读全文

博文 2016-07-08 08:00:00 xiaofengshuyu

C中调用go中的回调函数

在用go包装某些c库时(如glut),需要将go函数当作回调函数传递给c库(如glutDisplayFunc(&draw)中的draw函数,我想将go写的函数传过去),应该怎么做?我写了一个示例,但一直不成功,不知道为什么?麻烦知道的帮我解答一下。 代码如下: /* test.h */ extern void SetFunc(); /* test.c */ #include "test.h" #include "_cgo_export.h" void SetFunc() { InternalFunc(); } /* test.go */ package main // #include "test.h" import "C" ...阅读全文

主题 2013-04-19 09:03:40 shikuijie

GO语言学习笔记(一)

每个Go源码文件开头都是package声明,表示Go代码所属的包要生成Go的可执行程序,需要定义一个main的包,同时创建main目录外部参数传入用os模块的os.Args方法获取,os.Args接收的参数下标从1开始 package main import ( "fmt" "os" ) func main(){ fmt.Println("Hello Test") fmt.Println(os.Args[1]) } 在函数返回时没有被明确赋值的返回值会被设置成默认值,例如float类型返回值会被设置成0.0,error类型返回值会被设置成为nil6g和6l是64为版本的Go编译器和链接器,32为版本的编译器和连接器是8g和8l,gcc版本的编译器是gccgo 6g helloworld.go...阅读全文

博文 2014-10-11 13:00:06 YaphetS_xiaoyang

go gdb调试 参数设置

编译时,如果编译的结果需要gdb调试则使用参数-gcflags “-N -l”,这样可以忽略Go内部做的一些优化,聚合变量和函数等优化. go build -gcflags "-N -l",但是一定要注意是不是小写的i,也不是大写的I,是小写的L,不然会出现奇怪的错误。 如果编译的结果需要发布.则使用-ldflags “-s”,可以去掉调试信息,减小大约一半的大小 go build -ldflags "-s" 删除调试符号:go build -ldflags “-s -w” -s: 去掉符号信息。-w: 去掉DWARF调试信息。 关闭内联优化:go build -gcflags “-N -l...阅读全文

windows上GOROOT和GOPATH的设置

下载了go语言的安装包, 然后安装, 装完了需要设置三个地方: 1. 在windows的PATH变量中添加go的可执行文件所在的目录: PATH=C:\Go\bin;其他设置; 2. 设置 GOROOT , 这个好理解, 直接设置成 C:\Go 即可 GOROOT=C:\Go 3. 设置GOPATH, 这个很难理解, 我的尝试: GOPATH= #就是等于空, 这个是可以在系统环境变量中设置的, 结果报错go get 包的时候报错说$GOPATH未设置 GOPATH=; #就是等于一个分号(;), go get 包开始可以运行, 不报错, 最后还是报错, 说$GOPATH未设置 GOPATH=C:\Go 或者GOPATH=C:\Go; #go get 包报错, 说$GOPATH不能设置成和G...阅读全文

go环境变量配置 (GOROOT和GOPATH)的区别和含义

GOROOT就是go的安装路径在~/.bash_profile中添加下面语句:GOROOT=/usr/local/goexport GOROOT当然, 要执行go命令和go工具, 就要配置go的可执行文件的路径:操作如下:在~/.bash_profile中配置如下:export $PATH:$GOROOT/bin如果是windows需要使用;符号分割两个路径, mac和类unix都是用:符号分割GOPATH:go install/go get和 go的工具等会用到GOPATH环境变量.GOPATH是作为编译后二进制的存放目的地和import包时的搜索路径 (其实也是你的工作目录, 你可以在src下创建你自己的go源文件, 然后开始工作)。GOPATH之下主要包含三个目录: bin、pkg、s...阅读全文

在生产环境中使用 Go 语言两年的总结

在iron.io的生产环境使用Go语言两年后,我想分享我们的经验和感受。我们是第一批在生产环境中使用Go(Go语言)的公司之一,长久以来我们不知道该有怎样的预期,但到目前为止,很棒。 在之前发表的一篇文章从Ruby切换到Go中我谈了一些,但这次将更具细节一些,我们喜欢这门语言以及一路上我们学到的东西。介绍没有特定顺序,按下面这样: 性能表现(Performance) 内存占用(Memory) 并发性(Concurrency) 可靠性(Reliability) 部署(Deployment) 天赋(Talent) Garfielt翻译于 2年前 1人顶 顶 翻译的不错哦! 性能表现 当我们第一次决定要使用什么语言时我们做了一些调研,为我们的应用环境、消息队列创建了一些模拟。我用Go写了我偏爱的b...阅读全文

博文 2015-03-11 19:48:43 Garfielt, lidashuang

dart语言 (安卓应用开发)

当今IT业界,三足鼎立。三巨头中,Google还如同赤壁后的刘备,正处于全面出击时期,生态系统还未成型。Apple有OC,Microsoft有.NET,Google只能用最普通的C++和JavaScript,还有个Java,整天被人讨着要专利费。这种借荆州的日子怎么能忍,Google先推出了Go语言,欲取代C++和Java;去年底又推出了Dart语言,目的想取代JavaScript,不仅是自己用,而且想彻底打破Web开发僵局。 互联网时代开启以来,互联网这么多年来总体是以超高速发展。然而根据辩证法还是什么法则,事物发展往往是螺旋上升的。互联网这么多年来也经历了两次低潮,一次是2000年泡沫破裂,另一次就是现在这次,这一次不像2000年那么大起大落,却是Web高速发展多年后瓶颈矛盾的交织...阅读全文

golang入门之go语言简介

Go出生的背景:   Go最早并不是一个Google的正式项目,而是作为一个"20%"的项目出现的,直到2009年才以开源的方式面向大众,目前go team有稳定的发布周期,大约半年一个新的版本,最新的是1.8。   Go语言的出身可以说非常豪华,最早对go语言的讨论是由罗伯特·格瑞史莫、罗伯·派克和肯·汤普逊发起的,主要是为了解决c++中出现的问题而发起的项目。肯·汤普逊是c语言和unix的发明者,罗伯特·格瑞史莫参与设计了Java的HotSpot虚拟机和Chrome浏览器的JavaScript V8引擎,罗博·派克在大名鼎鼎的bell lab侵淫多年,参与了Plan9操作系统、C编译器以及多种语言编译器的设计和实现。 Go语言从2009年开源到现在吸引了很多开发者的注意,分别获得了200...阅读全文

博文 2017-06-10 00:00:02 yangbin1110

在生成环境中使用 Go 语言两年的总结

在iron.io的生产环境使用Go语言两年后,我想分享我们的经验和感受。我们是第一批在生产环境中使用Go(Go语言)的公司之一,长久以来我们不知道该有怎样的预期,但到目前为止,很棒。 在之前发表的一篇文章从Ruby切换到Go中我谈了一些,但这次将更具细节一些,我们喜欢这门语言以及一路上我们学到的东西。介绍没有特定顺序,按下面这样: 性能表现(Performance)内存占用(Memory)并发性(Concurrency)可靠性(Reliability)部署(Deployment)天赋(Talent) 性能表现 当我们第一次决定要使用什么语言时我们做了一些调研,为我们的应用环境、消息队列创建了一些模拟。我用Go写了我偏爱的beanstalkd的一个副本实现,使用beanstalkd协议,这样我...阅读全文

golang中的函数参数值传递和引用传递

在golang中函数的参数默认为 **按值传递**,即在函数内部修改传入参数的值是函数外部传入值的 **拷贝**。 如果想要使用引用传递,需要将传入的参数设置为 **指针类型**。 如果传入的参数数据很大,建议使用指针类型,减少内存因拷贝参数而占用。 ``` type person struct{ Name string Age int } func SetName(p person, name string){ p.Name = name } func SetNameByPointer(p *person, name string){ p.Name = name } func(p person) SetPersonName(name string){ p.Name = name } fun...阅读全文

博文 2018-11-06 17:54:02 lijingtian

golang 类型断言与反射

session("user")是在另一个页面设置的,存储了一个models.User类型的struct var user models.User u := this.GetSession("user") 获得session user,这里u是一个interface user = u.(models.User) 类型断言,我断言这个U的类型就是models.User类型的,然后我把他赋值给另一个models.User类型的变量 fmt.Println(user.Id) 这里我就可以访问session user的值了 u := this.GetSession("user") //取得一个interface v := reflect.ValueOf(u)//反射得到这个变量的类型 fmt.Prin...阅读全文

博文 2014-10-04 19:27:28 别人说我名字很长

用过beego ORM框架的大神进来看看

用了beego的orm框架,发现会对表名全部转换成小写了。而我的数据库中的表名是T_UserInfo,经过GO转换之后变成了t_userinfo了。而我的数据库对表名大小写是敏感的,如果设置成不敏感,那么对以前的一些服务程序会有影响,所以想问一下这个ORM可以设置表名不自动转换吗? stament.QueryTable("TUserinfo").Filter("id", id).One(&data...阅读全文

Go 语言项目管理

Go 作为自带项目管理的编程语言,及其方便。 目录结构 通常, 一个Go语言项目 ( 假设这个项目的根目录是 GoProjectRoot )的目录是这样的 : 一级目录 GoProjectRoot/src #包含项目的源代码文件; GoProjectRoot/pkg #包含编译后生成的包/库文件; GoProjectRoot/bin #包含编译后生成的可执行文件。 其中src目录需要我们自己创建, 其余的两个目录都是在执行 go install 的时候自动生产的。 二级目录 在src目录下面的, 是我们本项目的全部源码, 一般按照不同的模块分别放置 : |-- |-- |--mudule1.go |-- |--mo...阅读全文

博文 2015-11-13 18:00:04 cchd0001

C/C++/Go混合编程实践之GoJieba

最近想在团队中推动Go在项目中更多场景的应用,提高开发效率。 但是遇到了一个顾虑,就是有些功能库是 C++ 写的, 切换到 Go 开发之后如果需要这些功能的话, 完全重写一个短期内不现实。 所以就产生了探究 C/C++/Go 混合编程的想法。 很早之前就听说 Go 语言对 C 语言非常友好, 几乎可以无缝使用 C 的一些丰富遗产。 刚学 Go 的时候尝试了一下,应该是因为参考的资料的问题, 没有顺利跑通。后来忙其他事情了,也没有深究为什么。 所以趁这个周末捣鼓了一下,跑通了 C/C++/GO 混合编程。 主要参考 how-to-use-c++-in-go 和 cgo , 不过前者的回答毕竟久远了,比如就不需要写像作者描述的, 那么复杂的 Makefile,直接 go build 即可(可以参...阅读全文

博文 2016-02-05 05:00:00 xie1xiao1jun

beego多级路由导致页面不能正常加载css样式

(1)路由设置:beego.Router("/index",&controller{}) (2)controller的Get()方法:this.TplName="index.html" (3)其中index.html位于views文件夹下,引用了位于static文件夹下的css,"./static/css/xxxxx; 此时访问/index路径能正常加载css显示index.html页面。 (4)如果把路由设置成beego.Router("admin/index",&controller{}),其他不变,访问admin/index时则不能正常显示index.html页面. (5)检查页面元素时发现index.html页面加载的css路径位于admin/static/css/xxxx...阅读全文

Golang中JSON解析结构体

一、StructTag介绍StructTag是go语言结构体中的一个标记字段,放在字段声明的后面,一般只有特定情况下会用到,如json的转化。 使用的时候只要把标记的字段用两个包起来即可,标签内的语法形式通常为key:”value”` ,多个标记用空格隔开。 1234type tagTest struct { tagA string `TagA` tagB int `TagB`} 二、Struct转Json要想把struct转化成json,只要把结构体内的字段名设置成导出状态,也就是把首字母大写就行了,默认情况下,转化后的json中的key值和结构体中的字段名是一样的。 1234567891011121314151617181920212223package mainimport ( "fm...阅读全文

博文 2018-05-17 09:27:59 马谦的博客

Android app打包知识点大全

android app开发结束后,就需要对app进行打包、部署与发布了,那对于android初学者而言,如何对apk进行打包呢?今天小编就为大家分享一二,一起来看看吧~~ aapt package -m -J src -M AndroidManifest.xml -S res -I android.jar //这句命令主要是重新自动生成R.java文件,比如增加个图片或者字符串或者增加个layout目录xml文件 mkdir D:\testapk\classes //这句命令是创建个编译*.java源文件输出*.class存放的目录,文件夹名可以随便命名. javac D:\testapk\src\aimoxiu\theme\moxiutheme\*.java ...阅读全文

Go语言GUI Demo 之 Walk

Go语言没有自带官方Gui,目前找到的Gui框架中感觉Walk还不错,但该库只支持Windows操作系统(一般也只用到Windows)。本次我把官方的example编译成exe,方便网友参考Walk 的gui功能。Walk地址:https://github.com/lxn/walk以下是各demo的截图,和exe文件下载地址(本次编译保留黑框框方便查询调试信息,实际中可以去掉)下载地址:http://d.139.sh/snans/file/gogui-examples.rarDemo截...阅读全文

博文 2016-11-12 14:00:02 sunansheng

Repustate从Python迁移到Go,性能提高10倍

Repustate向世界各地的企业和组织提供文本分析服务。随着公司的发展,他们每天处理的文本段数量从5亿增加到10亿,其中包括Tweet、新闻文章、博客评论、用户反馈等。大规模的文本分析非常困难,因为很少会出现两段文本完全相同的情况,所以无法利用缓存来提高效率。不过,它可以将大段的文本分成多个句子,然后并发分析每个句子。近日,Repustate官方博客发表了一篇博文,介绍其API的演进过程。 Repustate API的第一个版本是用Django编写的。他们构建了一个原型,并以此为基础推出了他们的服务。但每个Django请求/响应周期的开销太大。随着API访问量增加,可靠性问题凸显,使用Amazon服务的成本也大大增加。于是,他们开始寻找一种Python代替方案,并选择了Flask。Flas...阅读全文

博文 2015-09-25 17:08:05 谢丽

为什么 2010 年前后诞生的语言(如 Golang, Rust, Swift)都是直接编译成机器码?

为什么 2010 年前后诞生的语言(如 Golang, Rust, Swift)都是直接编译成机器码? 之所以问这个问题是因为知乎上有问题“为什么 2010 年前后诞生的语言(如 Golang, Rust, Swift)都是强类型 + 静态?”,其中大多数答案都是在说动态语言存在的问题 那么按照这个逻辑,这三门语言都不是像JAVA、C#那样先编译成中间代码(JAVA字节码和CIL)、在运行时再JIT成机器码,那是不是说明中间码这种思路也有问题呢? 1 条评论 分享 按投票排序按时间排序 2 个回答 什么是答案总结? 答案总结 4赞同 反对,不会显示你的姓名 匿名用户 沈世军、Colliot、卿培 等人赞同 你忘记scala和clojure等jvm上的语言了。所以提问的前提就不对 你忘记sca...阅读全文

博文 2016-04-20 10:00:01 autumn20080101

[go]linux环境中文乱码问题

之前一直在windows下测试go代码,保存为utf-8,就可以正常显示中文. 迁移到linux后发现中文无法正常显示. 搜索了一下类似问题几乎没有. 测试发现是使用终端的问题. 我一直用的secure crt4.0, 懒得升级.但是4.0版本没有设置字符集的功能 换成putty就没问题了 下载了一个7.0的便携版的crt,把字符集设置成utf-8也可以了. cat和more显示都无问题(LANG=en_US也可以) 因为go必须是utf编码,所以使用vim要设置一下.vimrc set termencoding=utf-8 set fileencodings=ucs-bom,utf-8,cp936 set fileencoding=utf-8 set encoding=utf-...阅读全文

博文 2015-06-18 09:09:20 laputa73

golang 与ide环境变量设置

系统环境变量:export PATH=$PATH:/usr/local/go/bin golang ide liteide环境变量设置: # native compiler linux amd64 GOROOT=/usr/local/go //golang 的安装目录() #GOBIN= GOARCH=amd64 GOOS=linux CGO_ENABLED=1 GOPATH = /home/www/g //开发目录 PATH=$GOROOT/bin:$PATH LITEIDE_GDB=gdb LITEIDE_MAKE=make LITEIDE_TERM=/usr/bin/gnome-terminal LITEIDE_TERMARGS= LITEIDE_EXEC=/usr/bin/xterm...阅读全文

博文 2014-10-04 19:26:51 廖君

golang在window平台交叉编译

情景设定:操作系统:window7x64安装目录:c:/go设置环境变量: PATH=%PATH%;C:/go/bin GOROOT= C:/go GOPATH = D:/goproject 进行交叉编译的原理是设置GOARCH(cpu架构)和GOOS(操作系统)然后执行c:/go/src/make.bat --no-clean将c:/go/src的源码编译成各个ARCH下对应OS的包打包好的批处理文件如下: set CGO_ENABLED=0 ::x86 set GOARCH=386 set GOOS=windows call make.bat --no-clean set GOOS=linux call make.bat --no-clean set GOOS=freebsd call ...阅读全文

博文 2014-10-04 19:27:26 chen yuwen

go programming language(1)

go语言的特征 1. 用很简单的语法支持并行编程 2. 部分的更加规范编程风格,比如大小写等 3. go的编程哲学,精炼包容 怎么安装go。 每一个语言都要一个编译器,所谓的安装语言就是安装这个编译器。 下载了source code也是用C语言写的,不清除能否实现超越C的梦想,不过早期的C++做得更过分,先编译成C,相比这还是进步很多,后来为了安装方便还是下载了bin安装,花费了一百多M的空间。 Create a file named hello.go and put the following program in it: package main import "fmt" func main() { fmt.Printf("hello, world\n") } Then run it w...阅读全文

博文 2014-10-11 09:00:00 wangeen

怎么解决VSCODE调试控制台exec: go: executable file not found in %PATH%

感谢您花时间阅读我的问题。 google baidu都用上了没找到症结。 go env set GOPATH=C:\mygo set GOROOT=C:\Go path=%GOROOT%\bin;%path% 目前解决办法是打开windows环境变量不做任何改动点击确定,重启vscode,这个错误消除了。 好像和集成终端没关系吧?设置成powershell了...阅读全文

golang的项目结构 相关知识

### 项目结构 ``` ├── bin │ ├── login │ └── main ├── pkg │ └── darwin_amd64 │ └── login │ └── auth1.a ├── src │ ├── cfg │ │ └── testcfg.go │ ├── db │ │ ├── innerdb │ │ │ └── innerdb.go │ │ └── db.go │ ├── login │ │ ├── auth1 │ │ │ └── auth1.go │ │ ├── auth2 │ │ │ └── auth2.go │ │ └── login.go │ └── main.go └── Makefile ``` *** ### 两种包导入方式 ##### local im...阅读全文

golang http测试 no-cache 对性能的影响

做了下go和java的http性能的简单比较服务端直接输出字符串使用JMeterwindows下 2000的并发,测试结果很出乎意料,go不会这么差吧研究了半小时,原因如下servlet添加里加了 response.setHeader("Pragma", "no-cache"); go的测试代码里没有设置该参数设置后重新跑测试o...阅读全文

博文 2014-10-04 19:27:38 咖啡伴侣

golang 进程出现too many open files的排查过程

1. 现象 服务的cpu跑满(golang实现), 并大量报too many open files错误.服务使用systemd来运行,部署在阿里ecs上. 2.分析 从日志来看,cpu的上升主要为到达文件数限制引起的,但之前已经更改过系统的文件数及所有用户的文件数,按道理是不应该出现这个问题的,后来查阅资料发现,文件数可以从三个维度限制分别为操作系统限制,用户态限制,以及进程限制,对于这三个维度选取最小值生效.于是对系统进行分析. 首先查看当前打开文件数, 进程占用的文件数并不多. lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more 然后获取系统级文件数限制 输入命令cat /etc/sysctl.conf得到fs.file-max = 1...阅读全文

博文 2016-10-11 09:00:11 u010511236

beego.InsertFilter过滤器

beego.InsertFilter过滤器是为某些router提供过滤功能,可以设置在某个路由访问时进行额外的操作。通过参数设置可以设置过滤器执行的时刻。 如下所示beego.InsertFilter有一下几个参数: InsertFilter(pattern string, pos int, filter FilterFunc, params …bool) pattern:路由规则,过滤器作用的路由 pos : 过滤器执行的时刻,有以下5种 beego.BeforeStatic beego.BeforeRouter 访问路由之前 beego.BeforeExec 访问路由之后执行controller之前 beego.AfterExec 执行controller之后调用 beego.Finis...阅读全文

博文 2018-09-11 10:13:11 JimPang

grpc(5):使用grpc+consul 开发服务调用

1,consul 服务发现 在使用了几次之后终于感受到了这个系统挺好的了。 在一个小的团队里面,要做服务发现,做的简单高效。 可以直接使用 consul 作为服务发现,服务检查的系统。 不用自己去开发了。真的很方便,只要部署下就可以了。 github 上放了代码,都是很简单的。 https://github.com/freewebsys/grpc-go-demo 2,重新研究consul启动 发现之前是使用dig 进行操作的,因为consul官方网站也是推荐使用的。 但是其实可以使用ping ,nslookup 也是一样的。 但是需要修改consul的端口。 consul agent -dev -ui -server -node=consul-dev -client=10.0.2.15 -d...阅读全文

博文 2017-07-12 02:30:18 freewebsys

论Golang 给我惊喜的Go语言

今日凌晨,看了Google推出的编译型静态语言Golang的见解。 感觉这就是我一直期望得到的一种编程语言。简单概括我喜欢的地方: 1. 语法特性非常少,精简到没有多余的语法特性,甚至没有泛型; 2.运行效率特别高,我估计会高于C++; 3.可以编译到不同的OS,实现跨平台,并且不借助于虚拟机(JVM等)。 4. 编译型强类型编程语言 说说第一点 :很符合本人自己的喜好,本人厌恶C++里太多的语法特性。比如,光一个子类继承自父类,就有public继承、private继承的区别,多重继承等大量的特性,带来的弊端往往多余带来的好处。 同样是面向对象的编程语言,Java和C#都是只有public继承,人家也能实现所有的东西,C++这样做,纯属多余。另外C#6.0又玩出写什么新特性,说是可以减小代码...阅读全文

博文 2015-08-27 10:00:07 lsm135