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

golang的net包

package net import "net" net包提供了可移植的网络I/O接口,包括TCP/IP、UDP、域名解析和Unix域socket。 虽然本包提供了对网络原语的访问,大部分使用者只需要Dial、Listen和Accept函数提供的基本接口;以及相关的Conn和Listener接口。crypto/tls包提供了相同的接口和类似的Dial和Listen函数。 Dial函数和服务端建立连接: conn, err := net.Dial("tcp", "google.com:80") if err != nil { // handle error } fmt.Fprintf(conn, "GET / HTTP/1.0\r\n\r\n") status, err := bufio.Ne...阅读全文

博文 2014-08-21 10:13 刘地

理解Golang包导入

自:http://tonybai.com/2015/03/09/understanding-import-packages/ Golang使用包(package)这种语法元素来组织源码,所有语法可见性均定义在package这个级别,与Java 、python等语言相比,这算不上什么创新,但与C传统的include相比,则是显得“先进”了许多。 Golang中包的定义和使用看起来十分简单: 通过package关键字定义包: package xxx 使用import关键字,导入要使用的标准库包或第三方依赖包。 import "a/b/c" import "fmt" c.Func1() fmt.Println("Hello, World") 很多Golang初学者看到上面代码,都会想当然的将imp...阅读全文

博文 2015-06-03 11:53 sevenyuan

golang 使用 iota

iota是golang语言的常量计数器,只能在常量的表达式中使用。 iota在const关键字出现时将被重置为0(const内部的第一行之前),const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。 使用iota能简化定义,在定义枚举时很有用。 举例如下: 1、iota只能在常量的表达式中使用。 fmt.Println(iota) 编译错误: undefined: iota 2、每次 const 出现时,都会让 iota 初始化为0. const a = iota // a=0 const ( b = iota //b=0 c //c=1 ) 3、自定义类型 自增长常量经常包含一个自定义枚举类型,允许你依靠编译器完成自增设置。 type Stere...阅读全文

博文 2015-01-14 16:55 ghj1976

go文件操作函数

文件操作 golang的文件操作时在os包中的。 所以用的时候要import os包 包含以下的这些函数 func Create(name string) (file *File, err error) 直接通过纹面创建文件 func NewFile(fd uintptr, name string) *File func Open(name string) (file *File, err error) 以只读方式打开一个存在的文件,打开就可以读取了。 func OpenFile(name string, flag int, perm FileMode) (file *File, err error) ...阅读全文

Go中进行字符集转换

Go代码本身是UTF-8的,而且官方没有提供相关字符集的转换库。不过,目前已经有一些开源库支持字符集转换。 1. [iconv-go](https://github.com/djimenez/iconv-go),通过cgo封装了iconv库; 2. [qiniu iconv](https://github.com/qiniu/iconv),同样通过cgo封装iconv库; 3. [go-charset](http://code.google.com/p/go-charset/),支持UTF-8转换为其他字符集(非iconv库),同时也封装了iconv,提供更多字符集的转换; 4. [Mahonia—a character-set conversion library fo...阅读全文

分布式存储Weed-FS源码分析

基于源码版本号 0.67 , 【Weed-FS又名叫Seaweed-FS】。 Weed-FS 是一个非常优秀的由 golang 开发的分布式存储开源项目, 虽然在我刚开始关注的时候它在 github.com 上面只有 star 50+, 但是我觉得这个项目是一个几千 star 量级的优秀开源项目。 Weed-FS 的设计原理是基于 Facebook 的一篇图片存储系统的论文 Facebook-Haystack, 论文很长,但是其实原理就几句话,可以看看 Facebook图片存储系统Haystack , 我觉得Weed-FS是青出于蓝而胜于蓝。 Weed-FS 这个开源系统涵盖的面比较多, 很难在一篇文章里面说清楚, 只能尽可能清楚的说说主要的部分。 源码目录结构 核心模块 weed 入口目录...阅读全文

博文 09 Jan 2015 YanyiWu

Python、Java、Scala、Go Package对照表

格式转换类 分类 Python Java Scala Go Excel xlwt/xlrd, XlsxWriter POI - - PDF PyPDF2 Apache FOP - - CSV csvkit, tablib - - - XML解析 BeautifulSoup/bs4 - - - JSON - jackson json4s, spray-json - 数据处理和计算类 分类 Python Java Scala Go 二维数据分析 pandas - Saddle - 网络分析 networkx JUNG - - 矩阵计算 numpy - Algebird, Breeze blas, gocomplex, go-fn 科学计算 scipy SCaVis - - 符号计算 sympy ...阅读全文

博文 2015-03-24 21:05 Worldguy

Golang HTTP GET POST请求

package main import ( "fmt" "io/ioutil" "net/http" "os" "strings" ) func GET() { client := &http.Client{} reqest, err := http.NewRequest("GET", "http://www.baidu.com/", nil) //建立一个请求 if err != nil { fmt.Println("Fatal error ", err.Error()) os.Exit(0) } //Add 头协议 reqest.Header.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;...阅读全文

博文 2015-05-18 14:20 dq4402935

使用go语言编写IOS和Android程序

go语言目前已可以用来开发android和ios手机app。相关资料: 1、IOS https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!topic/golang-china/zEh_pdSLHDs 需要能访问google 源码:https://bitbucket.org/minux/goios 其它文档: https://medium.com/using-go-in-mobile-apps 2、Android 官方源码:https://github.com/golang/mobile 环境配置: http://studygolang.com/articles/2322 http://studygolang....阅读全文

博文 2015-05-18 21:09 baiyuxiong

分享一个Golang 学习站点:Go by Example,示例,源码,注释

分享一个Golang 学习站点:Go by Example,示例,源码,注释 很不错的一个网站和工具。主要内容包括: 1、为 Golang 各个知识点而写的小程序(放在 play.golang.org ); 2、适当的注释; 3、整站开源,从github clone 后,读者可利用内建的工具生成本地静态文件,甚至可以生成一个网站。 网址:https://gobyexample.com/ 源码:https://github.com/mmcgrana/gobyexample 知识点目录 Hello World Values Variables Constants For If/Else Switch Arrays ...阅读全文

Go 1.4正式发布 支持Android开发

摘要:Go是谷歌2009年发布的一门开源的编程语言,目前代码托管地址已经移到Github上,大家可以更加方便的访问和玩耍啦。 今年是Go诞生的第五个年头,而Go 1.4版本也是其第五个稳定版本。与Go 1.3版本相隔6个月时间。此次版本更新最引人注目的是官方支持Android,现在,开发者可以使用Go开发简单Android App了。 该版本对小的语言进行了改进,支持更多的操作系统和处理器架构;改进了工具链和库。同样,Go 1.4也优化了稳定性,编译和运行方面都没有修改。 语言方面的改进是for-range循环方面的语法改进,在1.3版本中有两种写法,现在只需这样就可以了: 引用for range x { ... } 在1.4版本中还出来一个新的子命令,go generate,该命令主要用来...阅读全文

go源码下载编译

各位大侠,我打算研究下go的一个开源软件influxdb,github上下载下来后,执行build,发现有很多code.google.com/p/log4go 类似的第三方包下载不下来。win7下的开发环境,执行set http_proxy后 执行go get 报错:_ssl.c:510: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed, 各位是怎么下载的? 还有 go 的开发 一般都是在linux下吗...阅读全文

go sync.once用法

欢迎关注go语言微信公众号 每日go语言 golang_everyday sync.once可以控制函数只能被调用一次。不能多次重复调用。示例代码: package main import ( "fmt" "sync" "time" ) func main() { o := &sync.Once{} go do(o) go do(o) time.Sleep(time.Second * 2) } func do(o *sync.Once) { fmt.Println("Start do") o.Do(func() { fmt.Println("Doing something...") }) fmt.Println("Do end") } 输出结果: Start do Doing somethi...阅读全文

博文 2015-05-18 21:13 baiyuxiong

goalng导出excel(csv格式)

最近项目中有个小需求,需要将查询结果导出到excel。之间前java比较容易,使用POI很容易就能实现,查了下golang的文档,发现golang下边并没有导出excel的包,但是却有一个encoding/csv的包,看了下发现可以导出csv文件,大家都知道csv文件其实就是文本格式的excel文件,可以直接通过excel打开或是导入excel。 看起来挺好的,问题如愿解决,但是事实证明对已一个还不成熟的语言或是库最好还是先测一下的好。兴冲冲的卸了测试例子,成功导出了一个text.csv文件,一切看起来都挺好的,然而打开之后就傻眼了:中文乱码,这个问题其实比较好理解,golang只支持utf-8,而win中文版默认字符集是GB2312(gbk),这样看来直接转码就行了呗。 由于之前吃了亏,这...阅读全文

博文 2014-07-20 19:40 good-temper

Docker源码分析(九):Docker镜像

1.前言 回首过去的2014年,大家可以看到Docker在全球刮起了一阵又一阵的“容器风”,工业界对Docker的探索与实践更是一波高过一波。在如今的2015年以及未来,Docker似乎并不会像其他昙花一现的技术一样,在历史的舞台上热潮褪去,反而在工业界实践与评估之后,显现了前所未有的发展潜力。 究其本质,“Docker提供容器服务”这句话,相信很少有人会有异议。那么,既然Docker提供的服务属于“容器”技术,那么反观“容器”技术的本质与历史,我们又可以发现什么呢?正如前文所提到的,Docker使用的“容器”技术,主要是以Linux的cgroup、namespace等内核特性为基础,保障进程或者进程组处于一个隔离、安全的环境。Docker发行第一个版本是在2013年的3月,而cgroup的...阅读全文

博文 2015年3月6日 孙宏亮

golang中net包用法(二)--IP

IP地址(Internet Protocol Address,称为互联网协议地址,简写为IP Address),是一种给主机在Internet上进行编址的方式。 type IP //IP表示一个简单的IP地址,它是一个byte类型的slice,能够接受4字节(IPV4)或者16字节(IPV6)输入。注意,IP地址是IPv4地址还是IPv6地址是语义上的特性,而不取决于切片的长度:16字节的切片也可以是IPv4地址。 type IP []bytefunc IPv4(a, b, c, d byte) IP //ipv4返回一个ipv4地址格式(a.b.c.d)的地址,这是16-byte的 func ParseCIDR(s string) (IP, *IPNet, error) //ParseCI...阅读全文

博文 2015-01-16 20:30 chenbaoke

【荐】本站重磅推出Go精彩博文功能

国庆这几天一直在家里宅着开发本站,新开发的功能主要有: 1. 网友博文. 汇集了各大知名程序员社区和个人博客的优秀文章,方便 Go 爱好者阅读学习; 2. 首页改版. 相比之前,首页看起来更清爽; 3. 浏览数、评论和喜欢功能. 浏览数更准(有防刷屏功能);通用的评论和喜欢功能;喜欢点赞的朋友 点起; 4. 汇集了Go视频、图书等学习资料; 5. 强大的管理后台; 6. 其他改进:通用的侧边栏展示;窗口登录等 目前,社区话题和资源等界面还是老的,后续会替换为新样式。 本站[源码完全公开](https://github.com/studygolang/studygolang),欢迎 fork && pull。 [![管理后台](http://studygola...阅读全文

uint 与 int 的区别 (golang语言)

上面是图,下面是源码: package main import ( "fmt" _ "time" ) func main() { a := byte(255) //11111111 这是byte的极限, 因为 a := byte(256)//越界报错, 0~255正好256个数,不能再高了 b := uint8(255) //11111111 这是uint8的极限,因为 c := uint8(256)//越界报错,0~255正好256个数,不能再高了 c := int8(127) //01111111 这是int8的极限, 因为 b := int8(128)//越界报错, 0~127正好128个数,所以int8的极限只是256的一半 d := int8(a) //11111111 打印出来则...阅读全文

博文 2014-01-01 16:13 mokt2001

go源码的 github 只读镜像

发现了一个 go 源码的 github 只读镜像,代码几乎和官方同步,不用翻墙可以看Go最新变化了。 另外,源码编译安装也可以通过这个镜像完成,不需要另外到 http://golang.org/dl 下载了,因为这个镜像包含了go所有分支和tag。 镜像地址:[https://github.com/jnwhiteh/golang](https://github.com/jnwhiteh/golang...阅读全文

go调用exe

//调用exe func callEXE1() { arg := []string{} cmd := exec.Command("test", arg...) //会向 cmd.Stdout和cmd.Stderr写入信息,其实cmd.Stdout==cmd.Stderr,具体可见源码 output, err := cmd.CombinedOutput() if err != nil { fmt.Println("Error:", err) return } fmt.Printf("callEXE2结果:\n%v\n\n%v\n\n%v", string(output), cmd.Stdout, cmd.Stderr) } func callEXE2() { arg := []string{}...阅读全文

博文 2014-08-06 14:29 陈好

javaer to go之byte类型转换

在Socket的Server和Client通信的过程中,传输的都是字节。而我们需要展示和使用的是字符串、整形等。这个时候,我们需要对字节进行处理,把byte类型的数据转成我们需要的类型。 1、[]byte与16进制字符串 []byte转16进制字符串 import ( "bytes" "strconv" ) //byte转16进制字符串 func ByteToHex(data []byte) string { buffer := new(bytes.Buffer) for _, b := range data { s := strconv.FormatInt(int64(b&0xff), 16) if len(s) == 1 { buffer.WriteString("0") } buffe...阅读全文

golang获取调用者的方法名及所在源码行数

package main import "runtime" import "log" func main() { test() } func test() { test2() } func test2(){ pc,file,line,ok := runtime.Caller(2) log.Println(pc) log.Println(file) log.Println(line) log.Println(ok) f := runtime.FuncForPC(pc) log.Println(f.Name()) pc,file,line,ok = runtime.Caller(0) log.Println(pc) log.Println(file) log.Println(line) log....阅读全文

博文 2015-02-03 16:45 wangxusummer

golang源码解读之map

golang的map实现并不是像c++一样使用红黑树,而是使用了hashmap,用数组来实现。 详细的实现后续补充,这里先做个备忘。 在iterate整个map的时候,使用delete是安全的。这跟c++是不一样的,c++在delete的时候,会导致整棵树发生变化,所以不能在迭代的时候删除元素。 那为什么golang的map是安全的呢,从源码来看,golang的map使用了桶的概念,元素是被hash到桶存储,每个桶预设是存储八个kv,而且在头部有一个uint8 tophash[8]的结构,存储每个key的高八位(即hash(key) » (64 - 8)),如果该位置未被放置元素,则有一个特殊的标志Empty。在插入删除的时候,首先会比较该uint8跟hash(key)是否相等。当然,桶还利...阅读全文

博文 2014-09-16 16:42 weijiaen

Martini源码剖析

martini是非常优雅的Go Web框架。他基于依赖注入的思想,仿照Sinatra的路由设计,参考Express的中间件设计,而且核心微小,扩展方便,非常值得学习。但是由于本身API设计简洁,使很多细节无法从代码理解。所以,我写一点笔记记录martini的工作方式。 Martini核心 我们从最简单的官方实例入手: package main import "github.com/go-martini/martini" func main() { m := martini.Classic() m.Get("/", func() string { return "Hello world!" }) m.Run() } martini.Martini是自带的核心结构,负责完成依赖注入和调用的过程。...阅读全文

博文 2014-04-24 傅小黑

golang 生成图表

golang 支持生产图片的源码在下面地址可以看到: https://github.com/vdobler/chart 这个项目 的 example 目录下编译后,执行下面命令就可以生产所有它支持的图表。 example/example –All 这些生产的图表效果如下: bestof.png xautoscale.png xbar1.png xbar2.png xbar3.png xbox1.png xgraphics.png xhist.png xkey.png xlog1.png xmleten.png xpie1.png xpie2.png xscatter2.png xscatter3.png xstrip1.pn...阅读全文

博文 2014-11-11 21:46 ghj1976

使用Go语言计算网络IP地址的CIDR

使用了Java、C#等许多语言好多年了,一直没怎么用过这些语言中的位移运算符,最近为了实现了一个小功能,才体会到这几个运算符的用途。在介绍如何用GO语言计算CIDR地址段之前,先介绍一下什么是网络地址的CIDR。 CIDR全称Classless Inter-Domain Routing(无类域间路由),相比CIDR,现在全球的IPV4地址(通过32位比特位表示)早在上世纪80年代就被划分成了A、B、C、D、E五大类地址,其中A类地址的比特位以0开头,B类地址以10打头,C类地址以110打头,D类地址以1110打头,E类地址以1111打头。其中D类地址主要用于路由组播,E类地址暂时保留。每一类地址剩余的比特部分又被划分为网络和主机两部分,具体划分请见下图: 每一类IP地址具体范围如下图所示,其...阅读全文

博文 2014-11-07 15:55 duhf_think

GO语解惑:从源码分析GO程序的入口

起因 最近几天学完了GO语言,但是教材里给出的信息太少,不能满足需要。于是在网上看了许多博文,这就发现其中有许多冲突之处,使人越发迷惑。为了解惑,我深入分析了一下GO语言而小有心得,想把其中的一些分享给大家,希望能提高大家的学习效率。 GO语言的真正入口 GO语言的runtime.Caller方法会提供当前goroutine的栈上的函数调用信息,主要有当前的PC值和调用的文件和行号。若无法获得信息,第四个返回的值为false。当我们在main.main里使用这个函数(本函数为转载): func main() { for skip := 0; ; skip++ { pc, file, line, ok := runtime.Caller(skip) if !ok { break } fmt.P...阅读全文

博文 2014-04-01 12:22 sz_Promi

studygolang源码阅读小结(一)

最近待业在家,闲来无事。在博主大神@polaris的指点下,开始探索studygolang的源码。最初定的题目是studygolang源码剖析,想想不合适,牛皮吹的有点大了。还是叫源码阅读小结吧。写一些个人的浅薄理解与看法,可能会有错误,希望大伙儿指正。 ## 第一节 源码的获取与本地化运行 ## 本文的目的在于把源码本地运行起来 ###准备工作### 首先源码地址 https://github.com/studygolang,下载最新代码 在本地要编译并执行源码还需要安装下面3个package,使用go get工具 go get github.com/Go-SQL-Dr...阅读全文

安装golang的mongodb驱动mgo速记

这里介绍的方法只适用于Centos平台,测试版本为centos 6.5 下载源码安装实在麻烦,这里采用比较简单的方法给GO安装mongodb驱动 安装mgo之前,需要先安装bzr yum -y install bzr 安装完成后,执行如下命令: go get labix.org/v2/mgo 成功后什么内容也不显示,没有出错提示,表示安装成功。 详细使用教程:http://labix.org/mg...阅读全文

博文 2014-06-11 10:37 yjken

go net 包详解1

/** * Created by Administrator on 13-12-9. */ package main import ( "fmt" "os" "net" ) /** * 将string类型的ip地址转换为IP对象 */ func main() { name := "192.168.1.97" ip := net.ParseIP(name) if ip == nil { fmt.Fprintf(os.Stderr, "Err:无效的地址") return } fmt.Fprintf(os.Stdout, "IP: %s %s\n", ip, ip.String()) defaultMask := ip.DefaultMask() fmt.Fprintf(os.Stdout, "...阅读全文

博文 2013-12-10 17:27 eclipser1987

golang web 自定义Handler时候静态资源问题

go 对静态文件的服务写法: http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static")))) 自己玩的时候遇到的问题: 自定义Handler 实现serveHTTP() 方法来动态match路由 路由定义为:map[string]func(http.ResponseWriter, *http.Request) 路径match路由函数 静态文件的请求也会走自己实现的serveHTTP() 方法 会在map中匹配不到路由 导致静态文件(模板中js和css等)导入失败 后来自己看了看源码 找到一个low b的解决办法 在serveHTTP() 判断是否请求静态资源(规则自定义)调用...阅读全文

博文 2015-07-15 16:26 北京_

IE 11下载文件中文乱码解决(go/php)

IE 11下载文件的时候发现乱码. 网上查了下资料,了解了一下,主要是user-agent变了,不再是MSIE,面是rv:11.0这样,所以只要服务端判断出是IE 11,处理跟MSIE一样。 GO: func setDownloadFileName(w http.ResponseWriter, fileName, agent string) { if strings.Contains(agent, "MSIE") { fileName = url.QueryEscape(fileName) fileName = strings.Replace(fileName, "+", "%20", -1) } if strings.Contains(agent, "rv:") && strings.Co...阅读全文

博文 2015-06-16 09:50 rariki

go语言nsq源码解读-基本介绍

希望可以在空余时间完成nsq源码解读系列的文档。 本篇作为第一篇,简单介绍一下nsq. 参考 http://feilong.me/2013/05/nsq-realtime-message-processing-system 的介绍:NSQ是由知名短链接服务商bitly用Go语言开发的实时消息处理系统,具有高性能、高可靠、无视单点故障等优点,是一个非常不错的新兴的消息队列解决方案。 nsg易于配置和部署,所有参考都通过命令行指定,编译好的二进制文件,没有其它依赖项。而且支持多种消息格式。 源码下载地址: https://github.com/bitly/nsq 本系列文档下载的源码为0.2.27版本。 为更好的理解源码,最理想的起步当然是先了解nsq的用法。所以接下来会先讲解nsq的安装、使用...阅读全文

博文 2014年03月19日 baiyuxiong

http的文件服务器 gohttp

gohttp是一个http的文件服务器,因为是用go语言写的,所以加了一个go的抬头。之所以用go是因为发布起来是一个二进制文件,不同的平台都可以用,而且没有依赖问题,且稳定性也很好。     这个软件从很久以前就开始写了,第一次提交实在2015年的2月11号,作为组内存放公共文件的一个小软件。一开始的功能只有像 python -mSimpleHTTPServer 那种简单的功能。但是当我看到[gotty](https://github.com/yudai/gotty)这个软件的时候 ,意思到一个简单的软件竟然可以做到如此出色。之后这个http文件服务器就不断的被优化着,保持着简单易用的同时,开始赋予了它最强大的功能。     这个软件有很多的技术,隐藏在了其简易朴实的外表之下。请容...阅读全文

go语言 看代码,学strings包

package main import ( "fmt" "strings" //"unicode/utf8" ) func main() { fmt.Println("查找子串是否在指定的字符串中") fmt.Println(" Contains 函数的用法") fmt.Println(strings.Contains("seafood", "foo")) //true fmt.Println(strings.Contains("seafood", "bar")) //false fmt.Println(strings.Contains("seafood", "")) //true fmt.Println(strings.Contains("", "")) //true 这里要特别注意 fm...阅读全文

博文 2013-12-26 14:16 zistxym

Weed-FS之Volume数据迁移

【Weed-FS又名叫Seaweed-FS】, 本篇主要是关于数据迁移相关的内容, 更详细的源码相关的请看分布式存储Weed-FS源码分析。 很多刚开始接触 Weed-FS 但是又不熟悉它的用户经常会使用以下的方式启动 weed 集群。 weed master -mdir="/tmp/mdata" -defaultReplication="001" -ip="localhost" -port=9334 weed volume -dir=/tmp/vol1/ -mserver="localhost:9334" -ip="localhost" -port=8081 weed volume -dir=/tmp/vol2/ -mserver="localhost:9334" -ip="localho...阅读全文

Golang redigo hmset hset 问题

最近公司项目,换到了golang 下面来开发,遇到了redis存储链表的问题,困扰了我好几天,后面静下心来,好好读了一下源码,发现官方的例子,最终还是羊毛出在羊身上 c, err := dial() if err != nil { panic(err) } defer c.Close() var p1, p2 struct { Title string `redis:"title"` Author string `redis:"author"` Body string `redis:"body"` } p1.Title = "Example" p1.Author = "Gary" p1.Body = "Hello" if _, err := c.Do("HMSET", redis.Args{...阅读全文

博文 2015-05-12 09:45 jackluo

GO语解惑:从源码分析GO程序的入口(续:_rt0_go)

书接上回。现在我们知道_rt0_go这个汇编过程是GO语言的真正入口并做了一些初始化工作,本文来大略的过一下这个过程和它调用的几个runtime里的函数。 Windwos Live Writer写的文章,编码有问题,对不住各位:我不想改。   参数 MOVL    argc+0(FP), AX MOVL    argv+4(FP), BX SUBL    $128, SP        // plenty of scratch ANDL    $~15, SP MOVL  &...阅读全文

博文 2014-04-02 11:32 sz_Promi

使用 emacs 结合 xcscope 阅读 go 代码

#-TITLE: xcscope 支持 go 语言 Table of Contents 1 下载源码,编译 ./configure make sudo make install ,会把 cscope 生成到 usr/local/bin/ 下面 2 为 mac 添加补丁 2.1 patch -p0 < cscopeosx.patch 2.2 cscopeosx.patch 如下 3 把cscope源码中的contrib/xcscope/xcscope.el 拷贝到 emacs 的 load-path 中,并在 emacs 中添加如下代码 4 为源码生成 cscope 文件 4.1 find . -name "*.go" > cscope.file...阅读全文

Go 程序调试工具godebug

godebug 是一个与众不同的 Go 程序调试工具,传统的编译型语言调试器使用底层系统调用并读取二进制文件用于调试各类符号。使用起来很麻烦而且很难移植。 godebug 使用不同的方法,直接把源码作为目标程序,在每一行插入调试代码,然后编译并运行。结果就是一个全功能的调试器,完全可以移植到不同平台。事实上,由于有了 gopherjs ,你也可以在浏览器上进行调试。 例如可通过` _ = "breakpoint"` 来插入断点,然后通过 `$ godebug run gofiles... [arguments...] `命令进行调试。 ![godebug](http://static.oschina.net/uploads/img/201504/21074625_FK48....阅读全文

开源项目 2015-04-22 09:28:16 mailgun

请教一个字符编码转换的问题

使用go在windows下编程是,因go是UTF8的编码方式,但在用go读一些网页时,由于有些网页使用GBK的编码方式,这样,在存在转码的问题,找了很久,网上有这个第三方库,但怎么装都不成功,总有一些错,请大虾指点一下。我完全是个新手,谢谢! https://github.com/djimenez/iconv-go https://github.com/qiniu/iconv 以下是安装 https://github.com/qiniu/iconvr 的报错 C:\Users\sh>go get github.com/qiniu/iconv # github.com/qiniu/iconv C:/mingw64/bin/../lib/gcc/x86_64-w...阅读全文