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

模拟浏览器登录操作

近来想用Go做一点事,以减轻工作上的负担。 我的工作中有几项工作是每日重复的,大致内容: 1、将数据收集到Excel中。 2、收集齐后,将Excel中的部分数据提交到办公系统中(网页上操作)。 3、再将提交过后的审批号码提取出来,存入Excel中。 我现在有两个问题: 1、现在,上面的第一步Excel操作,Go中不知有何现成的库,若没有,我有个效率不高的办法。这个问题倒还不算急。 2、第二个问题比较着急。向办公系统提交数据,得先登录。我的操作步骤如下: 2.1、先访问办公系统首页,获取Session的Cookie。 2.2、进行登录数据提交,将刚才获取的这个Session的Cookie一并提交上去。 2.3、进行业务数据提交。 我现在的...阅读全文

【玩转Golang】slice切片的操作——切片的追加、删除、插入等

一、一般操作 1,声明变量,go自动初始化为nil,长度:0,地址:0,nil func main(){ var ss []string; fmt.Printf("length:%v \taddr:%p \tisnil:%v",len(ss),ss, ss==nil) } --- Running... length:0 addr:0x0 isnil:true Success: process exited with code 0. 2,切片的追加,删除,插入操作 func main(){ var ss []string; fmt.Printf("[ local print ]\t:\t length:%v\taddr:%p\tisnil:%v\n",len(ss),ss, ss==nil) ...阅读全文

博文 2015-01-22 13:00:01 dajianshi

golang byte转string 字节数组转字符串的问题

golang语言本身就是c的工具集,开发c的程序用到的大部分结构体,内存管理,携程等,golang基本都有,他只是在这个基础上又加了一些概念这里说一个很小的问题,就是字节数组转string的问题,网上大部分都是这样转的(包括google上):string(p[:]),这个转完了是有问题的,我们再来看一下string这个结构体: struct String{ byte* str; intgo len;}; 这个结构体让我想起了nginx的string,他是这样定义的: typedef struct { size_t len; u_char *data;} ngx_str_t; golang里边 string的概念其实不是以前遇到\0结尾的概念了,他其实就是一块连续的内存,首地址+长度,上面那样...阅读全文

博文 2015-08-17 03:00:00 anjianliang

IntelliJ IDEA开发golang环境配置

看到一篇文章说IntelliJ IDEA开发作为Go的开发环境不错,突然发神经地想试了一下。 谁知道跟着教程走,到后面越来越不对劲,去百度其它教程,谁知道千篇一律。。。 好了下面开始了 首先把GO安装好。。。(自行安装,附上一篇我之前写的MAC安装GO) 安装IntelliJ IDEA,下载地址: https://www.jetbrains.com/idea/download/。 下载go-lang-idea-plugin这个插件,下载地址: https://plugins.jetbrains.com/plugin/5047。(PS:网上百度的基本都是下源码、编译,搞了一个下午编译,谁知道有已经编译好的可以下载) 下载之后,是一个zip文件,不需要解压,打开IntelliJ IDEA,打开P...阅读全文

博文 2016-02-14 04:00:02 skytoup

Golang GBK与UTF-8互转

package main import ( "code.google.com/p/mahonia" "fmt" ) func main() { //"你好,世界!"的GBK编码 testBytes := []byte{0xC4, 0xE3, 0xBA, 0xC3, 0xA3, 0xAC, 0xCA, 0xC0, 0xBD, 0xE7, 0xA3, 0xA1} var testStr string utfStr := "你好,世界!" var dec mahonia.Decoder var enc mahonia.Encoder testStr = string(testBytes) dec = mahonia.NewDecoder("gbk") if ret, ok := dec.Conve...阅读全文

博文 2015-02-03 10:00:02 ____追梦人

[golang学习] 在idea中code & debug

idea 虽然审美倒退了n年. 不过功能还是相当好用的. idea 的go插件堪称最好的go ide. 1. 语法高亮支持 2. 智能提示 3. 跳转定义(反跳转回来) 4. 集成debugger 还有重构等等功能也不错. 这些都是用起来让人很舒服的功能. 你要是用vim/emacs/sublime啥的. 当我没说. 很多人可能都不知道golang 代码可以debug. 很多人用console gdb命令式的调试. 如果不需要界面化的调试器, 也可以略过了. 1. 语法高亮支持 配色看起来挺搓的. 默认的, 我也懒得改. 大家可以随便改... 2. 智能提示 虽然我觉得VS + VA的提示更吊一点. 不过这样也还不错. 3. 跳转定义(反跳转回来) 这在查看代码时很有用. 比如我跳转到fmt...阅读全文

博文 2014-12-30 22:00:01 lingdhox

golang将byte的int转换

在使用golang做数据传输的时候,会经常遇到byte与int的互转,但golang并没有现成的方法,因此只能通过binary包来解决 所以,需要 :import "encoding/binary",又因为是byte的转换,所以还涉及到了bytes:import "bytes" 代码如下: package main import ( "bytes" "encoding/binary" "fmt" "strings" ) func main() { b : = []byte{0x00, 0x00, 0x03, 0xe8} b_buf : = bytes .NewBuffer(b) var x int32 binary.Read(b_buf, binary.BigEndian, &x) fmt....阅读全文

博文 2014-10-04 19:27:14 kuerant

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-04-10 19:00:00 Worldguy

golang label breaks

我们在for多层嵌套时,有时候需要直接跳出所有嵌套循环, 这时候就可以用到go的label breaks特征了。 先看一个范例代码: package main import ( "fmt" ) func main() { fmt.Println("1") Exit: for i := 0; i < 9; i++ { for j := 0; j < 9; j++ { if i+j > 15 { fmt.Print("exit") break Exit } } } fmt.Println("3") } 执行效果: 注意, label要写在for循环的开始而不是结束的地方。和goto是不一样的。虽然它是直接break退出到指定的位置。 break的标签和goto的标签的区别可以参考下面代码: JL...阅读全文

博文 2015-02-11 03:00:00 ghj1976

Go 1.6 GC improvements 转自google doc

Go 1.6 GC improvements Austin Clements and Rick Hudson 2015-08-13 Go 1.5 is the first release with our new, low-pause concurrent garbage collector (GC). This is a significant stride over past releases and should open up Go to applications where it was previously unsuitable, but there is still plenty of work to do. For 1.6, our primary goal with the...阅读全文

博文 2015-08-14 11:00:07 myml

Go语言的分词器(sego)

今天,主要来介绍一个Go语言的中文分词器,即sego。本分词器是由陈辉写的,他的微博在这里,github详 见此处。由于之前他在Google,所以对Go语言特别熟悉。sego的介绍如下 sego是Go语言的中文分词器,词典用前缀树实现, 分词器算法为基于词频的最短路径加动态规划。 支持普通和搜索引擎两种分词模式,支持用户词典、词性标注,可运行JSON RPC服务。 分词速度单线程2.7MB/s,goroutines并发13MB/s, 处理器Core i7-3615QM 2.30GHz 8核。 接下来,以如下几个方面来介绍sego 1. sego的安装 2. sego的原理 3. sego的使用 1. sego的安装 首先,在Go语言中,有很多第三方包,可以帮助我们实现某些特定的功能。比如这里...阅读全文

博文 2015-03-26 23:00:08 ACdreamers

Go语言流程控制语句if、goto、for、switch

最近在看go语言,虽然网上大多数的评论都是在吐槽go语言,但是我喜欢简单的东西,我不拿它和任何语言去比,去用每一种语言完全是自己兴趣问题。 还没开始就跑题了 ~~!回到标题上来,golang的流程控制,刚开始学go,记性一直都不怎么好,做个笔记 流程控制包含三大类:条件判断、循环控制和无条件跳转。 if go语言的if package main import ( "fmt" ) func main() { if a := 8; a > 2 { fmt.Println("a 比 10 大") } else { fmt.Println("a 比 10 小") } } 输出 a 比 2 大 if语句允许在if里面声明变量,但是这个变量的作用域只在该条件逻辑块内。 goto package main...阅读全文

博文 2014-10-06 06:16:32 guhao022

不用翻墙也可以使用Google及Gmail,不错!!

google hosts 2015.1.5 更新,本文只提供google相关服务的hosts,目前有效,失效后会及时更新。 注1:请使用chrome浏览器,并在地址栏里输入 chrome://flags/,然后查找QUIC,启用该协议,同时建议启用SPDY/4,能让访问更流畅。 注2:请使用https的方式访问,比如:https://www.google.com 注3:默认可能会跳转到www.google.com.hk,如果.hk访问困难,请使用:https://www.google.com/ncr 方式访问,禁止国别跳转。 ====更新分界线,复制下面内容到hosts文件即可===== #google hosts 2015 by 360kb.com #base services 64.23...阅读全文

博文 2015-01-06 15:00:01 骏弛

Vim 搭建强大的 Golang 开发环境

Vim 有一个很强大的地方是有各种强大的插件 对于 Go 语言,官方提供了一些简单的 Vim 插件,比如 语法高亮;Sublime 中有一个插件 GoSublime 对 Go 开发支持比较好。而 Vim 中有一个插件 vim-go,功能很强大。喜欢 Vim 的 gopher 可以试用下。插件地址:[vim-go](https://github.com/fatih/vim-go)。 ### 主要特性: ### 1、语法高亮,如 函数,操作符,方法等; 2、通过 gocode 支持自动完成; 3、保存是自动 gofmt,而且会保持光标的位置,不会破坏 undo 历史记录(这点很重要); 4、通过 godef 支持代码跳转(如跳转到定义处); 5、在 Vi...阅读全文

Google 镜像站搜集

Google 镜像站搜集 Techzero • 2015-01-31 • 搜集整理 • 394,843 次阅读 • 166 条评论 在特殊的地方和特殊的时间,流畅顺利的打开一个网站也变得如此艰难。 2015.9.4 更新。 以下是直接使用谷歌的方法,如需科学上网请加入交流群53767380,本站交流群为336220319。 本文将不定期维护更新,删除不能用的,增加新的可用网址。欢迎 Ctrl+D 收藏。列表中有些打不开可能是 DNS污染 的原因,可以参考 DNS劫持 DNS污染 介绍 与 公共DNS 推荐 一文尝试解决。 以下镜像站分原版、非原版和智能跳转。非原版的界面有些改变,搜索结果依然与原版相同。智能跳转是在搜索时自动检测使用可用镜像进行搜索并展示结果。 如果您是以下镜像的作者,并且不...阅读全文

博文 2015-09-06 09:00:02 Jr小王子

google hosts

google hosts 2015.2.16更新,本文只提供google相关服务的hosts,目前有效,失效后会及时更新 注1:请使用chrome浏览器,并在地址栏里输入chrome://flags/,然后查找QUIC,启用该协议,同时建议启用SPDY/4,能让访问更流畅。 注2:请使用https的方式访问,比如:https://www.google.com 注3:默认可能会跳转到www.google.com.hk,如果.hk访问困难,请使用:https://www.google.com/ncr 方式访问,禁止国别跳转。 ====更新分界线,复制下面内容到hosts文件即可===== #google hosts 2015.2.15 by 360kb.com #base services 64...阅读全文

博文 2015-02-28 03:00:01 yudishow

golang struct转map

struct转map package main import ( "fmt" "reflect" "time" ) type User struct { Id int64 Username string Password string Logintime time.Time } func Struct2Map(obj interface{}) map[string]interface{} { t := reflect.TypeOf(obj) v := reflect.ValueOf(obj) var data = make(map[string]interface{}) for i := 0; i < t.NumField(); i++ { data[t.Field(i).Name] = v...阅读全文

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

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-10-04 19:26:22 good-temper

Golang获取有重定向信息的response的location

在用golang做模拟登录某个网站的功能时发现了一个问题:如何获取该网站带有重定向信息的Response?或者说我只需要这个Response中的location信息即可,但是发现对于go的标准库net/http来说如果不hack这个库是没办法直接获取带有重定向信息的Response,而且目前大多第三方的http库也是基于标准库net/http的,貌似就要改net/http库或库本身就提供了对于重定向的设置? 那么我们就得先查看一下net/http库的源码了,通常我们都会用http.Client的Do方法发起一个请求,首先看一下它的源码: // Do sends an HTTP request and returns an HTTP response, following // policy ...阅读全文

博文 2015-05-04 09:00:01 reflectsky

google hosts 2015

感谢互联网为所有人提供开放自由的服务,祝愿祖国繁荣富强人民安居乐业。 ------ 注1:请使用chrome浏览器,并在地址栏里输入chrome://flags/,然后查找QUIC,启用该协议,同时建议启用SPDY/4,能让访问更流畅。 注2:请使用https的方式访问,比如:https://www.google.com 注3:默认可能会跳转到www.google.com.hk,如果.hk访问困难,请使用:https://www.google.com/ncr 方式访问,禁止国别跳转。 ------ google hosts 2015.2.2 ========================================= #google-hosts-2015 #base services ...阅读全文

博文 2015-02-05 03:00:01 5tao

beego关于session的问题

我在自己的网站中使用的是简单的:登陆时setsession,使用时getsession,在退出登陆时deletesession。在电脑上使用没有问题,但我同时在手机上测试的,手机上set,get都没问题,但delete就不行了,怎么都退不出登陆状态,重启手机浏览器都不行,删除cookie后才可以退出登陆,这是什么原因,deletesession操作时应该是有删除cookie处理的,是不是手机浏览器不支持外部的删除cookie操作?再问一句,好像手机浏览器不支持301跳转!这是什么原因。电脑用的是firefox浏览器,手机用的是安卓uc浏览器...阅读全文

Golang 的 map,slic 转 json 注意 chan

// You can edit this code! // Click here and start typing. package main import "fmt" import "encoding/json" type ChannelOperator struct { Oid string Aid string Name string Isonline bool Msgchan chan string `json:"-"` } type ChannelOperators struct { Op []ChannelOperator } func main() { fmt.Println("Hello, 世界") mm := make(map[string]*ChannelOperator...阅读全文

博文 2015-06-17 20:17:41 peta

golang web 跳转的实现

package mainimport ( //"database/sql" //_ "github.com/mattn/go-sqlite3" "fmt" "html/template" "log" "net/http" "strconv")type User struct { ID int Name string}func (user User) String() string { format := `ID : %d Name: %s` return fmt.Sprintf(format, user.ID, user.Name)}func saveUser(w http.ResponseWriter, req *http.Request) { userId, _ := strconv.A...阅读全文

博文 2015-08-09 11:00:01 石头军

idea intellij go "can’t find import" 解决方法

尝试众多golang的ide,最后发现intellij目前做的完成度最高 eclipse go 不能进行包、类、方法等的跳转,这点是无法忍受的,所以果断换成intellij 但是发现在intellij里面不能import $GOPATH里src下的包,网上搜索了很长时间, 在这里找到解决方法:https://github.com/mtoader/google-go-lang-idea-plugin/issues/224 Looking through the source, it seems that the plugin doesn't use the $GOPATH (to be fair, I think earlier Go docs didn't make the distinct...阅读全文

博文 2014-10-04 19:26:18 mahang

golang debug with LiteIDE

golang 的调试比较麻烦,debug stop into 无法跳转到自己写的代码,但是能够跳转到系统提供的代码。 以下是简单的测试代码:package main import ( "fmt") func main() { i := 5 even(i) b := 1 fmt.Printf("Is %d even? %v\n", i, b)} func even(i int) bool { a := 1 b := a + 1 b = b + 1 return i%2 == 0} 这个情况太诡异了,网上到处是对golang gdb的吐槽。详情可以看这里:http://grokbase.com/t/gg/golang-nuts/1443r0vch8/go-nuts-debugging-in-go...阅读全文

博文 2015-09-07 03:00:00 bnbqian

【玩转Golang】 自定义json序列化对象时,非法字符错误原因

由于前台web页面传来的日期对象是这样的格式“2010-11-03 15:23:22”,所以我安装网上查来的办法,自定义包装了time.Time对象,实现自己的Marshal和UnMarshal方法 type DateTime struct { time.Time } const ctLayout = "2006-01-02 15:04:05" const ctLayout_nosec = "2006-01-02 15:04" const ctLayout_date = "2006-01-02" func (this *DateTime) UnmarshalJSON(b []byte) (err error) { if b[0] == '"' && b[len(b)-1] == '"' { ...阅读全文

博文 2014-12-30 22:00:01 dajianshi

【玩转Golang】beego下实现martini中的透明式静态文件服务(static folder)效果。

出于效率等原因,最近将web框架由martini切换为了beego,其他地方都很平顺,只是两个框架的handler签名不一致,需要修改,所以耗时较长,这是预计到的。但是有一个地方没有预计到,也耗费了较多时间,那就是静态文件的服务。 用过martini的tx都知道,在mairtini中如果我们设置一个目录为静态文件目录,只需添加martini的Static插件,如设置web子目录为应用的静态文件路径: m.Use(martini.Static("web")) 此时,如果我们访问一个url,此url并没有在martini中注册,但是如果位于web目录中,就可以得到响应,例如: http://127.0.0.1:8088/ //返回web目录下的index.html http://127.0.0....阅读全文

博文 2015-01-31 03:00:00 dajianshi

golang--从类型转换角度看interface

刚开始接触golang,可能对interface的使用有些迷惑,尤其在有些资料里,介绍得更是云里雾里,让人搞不清楚。本文尝试从类型转换的角度来解析interface,希望对大家能有所帮助。不多说,先上代码。 package main import ( "fmt" ) func main() { var general interface{} general = 6.6 type_cast(general) general = 2 type_cast(general) } func type_cast(general interface{}) { switch general.(type) { case int : fmt.Println("the general type is int") ...阅读全文

博文 2014-10-04 19:26:04 getong

【玩转Golang】reflect.DeepEqual

如果有两个map,内容都一样,只有顺序不同 m1:=map[string]int{"a":1,"b":2,"c":3}; m2:=map[string]int{"a":1,"c":3,"b":2}; 我们怎么判断二者是否一致呢? 如果你打算这么写: fmt.Println("m1==m2",m1==m2) 这是行不通的,go没有重写map的==操作符,编译器会报告错误: invalid operation: m1 == m2 (map can only be compared to nil) 意思是map的变量只能和空(nil)比较,例如: fmt.Println("m1 == nil?",m1==nil) fmt.Println("m2 != nil?",m2!=nil) 这没有问题,执行...阅读全文

博文 2015-01-16 18:00:01 dajianshi

Emacs中Golang的设置

欲善其事,先利其器。下面记录一些使用Emacs24做golang开发中的一些有用设置,备忘用。 一,golang中的代码跳转 emacs24的go-mode中默认用godef-describe,godef-jump和godef-jump-other-window来做代码跳转,而godef-*这几个命令需要用到外部程序godef来寻找函数定义。安装步骤如下: 1,安装godef 1)设置GOPATH和GOBIN,将GOBIN设置为/usr/local/bin 2) go get github.com/rogpeppe/godef 3) go install github.com/rogpeppe/godef 注: godef也可以从code.google.com/p/rog-go/exp/cm...阅读全文

博文 2015-10-09 11:00:10 cobbliu

beego分页类

go count, _ := models.M("logoperation").Alias(`op`).Field(`count(op.id) as count`).Where(where).Count() if count > 0 { pagesize := 10 p := tools.NewPaginator(this.Ctx.Request, pagesize, count) log, _ := models.M("logoperation").Alias(`op`).Where(where).Limit(strconv.Itoa(p.Offset()), strconv.Itoa(pagesize)).Order(`op.id desc`).Select() this.Data["d...阅读全文

博文 2015-06-05 11:00:06 别人说我名字很长

让vscode完美支持go vendor的代码跳转(使用vscode必看)

Vscode是世界上最好的Go IDE!! 所以使用vscode作为Go的IDE是一件非常爽的事情。 可是事情总有不完美。现在有很多项目都是用vendor来做第三方包的版本控制,可是godef竟然不支持vendor的代码跳转!!我们想跳转到vendor中的代码,目前是无法做到的。 现在特分享一个自修改的版本,完美支持vendor特性,只要go install后,就可以爽爽的用vscode了。 欢迎大家加入Golang隐修会,群号894864,在群文件中就可下载,而且群内大神很多哦...阅读全文

博文 2016-04-19 15:00:02 abv123456789

windows下 sublime text2 跳转查看go源码

1.下载ctags 网站被墙,点此下载 下载后的exe文件随便放在哪个目录,将目录添加到 环境变量 path中.然后 cmd,输入ctags --help,显示一堆帮助文字,说明就可以了。 3. 在sublime text 2中安装CTAGS, ctrl + shift + p输入CTAGS回车就行了,不知道怎么安装包的请百度。 4. 在sublime text 2打开$GOROOT下src\pkg目录(例如 D:\go\src\pkg),在左侧边栏pkg文件夹上右击 Rebuild Tags。稍等一会。(右键看不到的朋友 先ctrl + shift + p ,rectags) 5.OK,大功告成。随便写个go,例如fmt.Println(。。。。),在Println上按ctrl+shift...阅读全文

博文 2014-10-04 19:26:29 阳光灿烂的日子

Go语言基础入门--if,for,range,switch

流程控制 这节主要记录的是编程语言中处理逻辑结构的流程控制 基本上流程控制语句启3个作用: 选择,根据条件跳转到不同执行序列 循环,反复执行某个序列 跳转,根据条件返回到某执行序列 Go语言支持如下的几种流程控制语句:  条件语句,对应的关键字为if、 else和else if;  选择语句,对应的关键字为switch、 case和select(将在介绍channel的时候细说);  循环语句,对应的关键字为for和range;  跳转语句,对应的关键字为goto。 Go语言还添加了关键字:break, continue, fallthrough。我们在实际开发中要灵活运用这些关键字以增加代码的健壮性 if...else if...else if a < 5 { return 0 }...阅读全文

博文 2015-04-22 15:00:24 chenqijing2

golang 环境配置建议

AUTH:PHILO VERSION:1.2 开发环境的必要特征 项目管理 快速文件跳转 自动语法检查 自动补全 查找定义 启动速度快 如果自己有需求的话插件可以随便写 灵活的运行配置 (project,lint,hint,autocomplete) 要实现上面几点我们来一步一步的配置。 我的大环境 OSX GO 1.4 HomeBrew go 环境安装 这一部分是最重要的,如果没有它,每次build的时候出现 too many errors 心里真的是非常难过的。 环境配置:(golint,gooracle,mercurial) 安装mercurial: brew install mercurial 这个东西是用来做版本管理的,也是下载代码的工具类似git,貌似google的项目用的挺多的...阅读全文

博文 2015-03-09 12:02:22 jianyingLi

VSCODE中godef无法跳转到定义的问题

文链接:http://targetliu.com/vscode-can-not-go-to-def/ 之前研究GOLANG时一直用LiteIDE,不得不说,LiteIDE的确不错,但是总感觉缺乏美感,是一款很中规中矩的编辑器。网上看到大家对VSCODE评价不错,尝试后发现的确不错,布局简洁、插件化、支持中文,通过VSCODE GO扩展能够很舒服的写GO的代码。 问题描述 不过在实际使用过程中发现 net 包无法正常跳转到定义,如下段代码 ResolveTCPAddr就无法正常跳转 package main import ( "net" ) func main() { _, err := net.ResolveTCPAddr("tcp", ":4040") } 由于VSCODE GO中跳转到定...阅读全文

博文 2017-02-09 08:29:59 Target_Liu

golang(Go语言) byte/[]byte 与 二进制形式字符串 互转

效果 把某个字节或字节数组转换成字符串01的形式,一个字节用8个”0”或”1”字符表示。比如: byte(3) –> “00000011” []byte{1,2,3} –> “[00000001 00000010 00000011]” “[00000011 10000000]” –> []byte{0x3, 0x80} 开源库 biu 实际上我已经将其封装到一个开源库了(biu),其中的一个功能就能达到上述效果: //byte/[]byte -> string bs := []byte{1, 2, 3} s := biu.BytesToBinaryString(bs) fmt.Println(s) //[00000001 00000010 00000011] fmt.Println(biu....阅读全文

博文 2016-10-03 04:00:02 QQ245671051

golang http.Redirect()函数容易误解的地方

调用http.Redirect()函数后,并不会立刻进行跳转,而是继续顺序执行函数中的所有的代码后,再进行跳转。但是Redirect后面的写界面的代码不会发送到游览器前端的。 代码如下: func Chat(w http.ResponseWriter, r *http.Request) { fmt.Println("Chat") r.ParseForm() withWho := r.Form.Get("withWho") type ToWho struct { Name string } if ret := CheckCookie(r); ret == "" || "" == withWho{ url := "/login" http.Redirect(w,r, url, http.Stat...阅读全文

博文 2015-06-17 20:17:46 rufidmx

win下gosublime配置ctag

ctags(Generate tag files for source code)是vim下方便代码阅读的工具。尽管ctags也可以支持其它编辑器,但是它正式支持的只有VIM。并且VIM中已经默认安装了Ctags,它可以帮助程序员很容易地浏览源代码。 参考: http://baike.baidu.com/view/9340968.htm 环境准备: 1、安装 sublimetext 3 下载安装最新版本 sublimetext 3 http://www.sublimetext.com/3 2、安装 Package Control, 在打开 Sublime Text 3以后,按下快捷键 Ctrl + `或者到菜单栏的:View > Show Console执行以下命令 import urlli...阅读全文

博文 2015-03-27 09:46:34 ghj1976

golang 二进制转十进制实现方式

golang 二进制转十进制实现方式 直接上代码 package main import ( "fmt" "math" ) func StringToIntArray(input string) []int { output := []int{} for _, v := range input { output = append(output, int(v)) } for i, j := 0, len(output)-1; i < j; i, j = i+1, j-1 { output[i], output[j] = output[j], output[i] } return output } func getInput(input string) <-chan int { out := m...阅读全文

博文 2015-07-14 03:00:00 jerrychen

[翻译]Go 和汇编

使用 cgo 让 Go 跟 C 一起工作已经不是啥稀奇的了。有大量的第三方包直接对 C 的库做了封装,提供给 Go 使用。从 Go 项目本身的代码中可以看到,不但有 C 代码,还有汇编代码存在。那么在自己的项目中是否能跟汇编结合呢?这篇文章完整并清晰的解说了如何让 Go 和汇编协同工作。真得性能敏感?上汇编吧!! ————翻译分隔线———— Go 和汇编 关于 Go,我最喜欢的部分之一就是它那坚定不移的实用主义线路。有时我们过于强调语言的设计,而忘记了编程所包含的其他内容。例如: Go 的编译器很快 Go 有着强大的标准库 Go 可以工作在多种平台下 Go 有着可以通过命令行/本地 Web 服务/ Internet 访问的完整文档 所有 Go 的代码是静态编译的,因此部署的问题微不足道 全部...阅读全文

博文 2014-10-09 16:18:21 mikespook

go语言开发证券实时行情转码接口(多个坑)

朋友给了一个c++的实时行情接口,其中实时分笔成交的结构体如下: 1 typedef struct tagStockReport 2 { 3 WORD wDataSize; //数据长度 4 WORD wChecked; //数据校验 5 6 char szCode[STOCKCODESIZE]; //股票代码,以'\0'结尾 7 char szName[STOCKNAMESIZE]; //股票名称,以'\0'结尾 8 9 int nTradingUnit; //交易单位(每手多少股) 10 11 long ltime; // UCT 12 13 float fLastClose; // 昨收 14 float fOpen; // 今开 15 float fHigh; // 最高 16 fl...阅读全文

博文 2015-07-04 03:00:11 wangyanlb

Golang签名系列之MD5

先从个简单点的,也是用的比较多MD5加密开始,不多说直接上代码 package sign import "crypto/md5" type MD5Client struct { } var MD5 = MD5Client{} func (this *MD5Client) Encrypt(plantext []byte) []byte { result := md5.Sum(plantext) return result[:] } /* 给要加密的信息加把盐 */ func (this *MD5Client) EncryptWithSalt(plantext []byte,salt []byte) []byte { hash := md5.New() hash.Write(plantext) ...阅读全文

博文 2015-08-28 16:00:01 君子藏锋

golang的json操作

package main import ( "encoding/json" "fmt" "os" ) type ConfigStruct struct { Host string `json:"host"` Port int `json:"port"` AnalyticsFile string `json:"analytics_file"` StaticFileVersion int `json:"static_file_version"` StaticDir string `json:"static_dir"` TemplatesDir string `json:"templates_dir"` SerTcpSocketHost string `json:"serTcpSocketHost...阅读全文

博文 2014-10-04 19:25:57 go-ios

google hosts 2015.1.4

感谢互联网为所有人提供开放自由的服务,祝愿祖国繁荣富强人民安居乐业... google hosts 2015.1.4 更新,本文只提供google相关服务的hosts,目前有效 注1:请使用chrome浏览器,并在地址栏里输入 chrome://flags/,然后查找QUIC,启用该协议,同时建议启用SPDY/4,能让访问更流畅。 注2:请使用https的方式访问,比如:https://www.google.com 注3:默认可能会跳转到www.google.com.hk,如果.hk访问困难,请使用:https://www.google.com/ncr 方式访问,禁止国别跳转。 ====更新分界线,复制下面内容到hosts文件即可===== #google hosts 2015 by 360...阅读全文

博文 2015-01-05 16:00:01 明舞

Go语言阅读小笔记,来自知呼达达关于unsafe.Pointer的分享.

第一式 - 获得Slice和String的内存数据 func stringPointer(s string) unsafe.Pointer { p := (*reflect.StringHeader)(unsafe.Pointer(&s)) return unsafe.Pointer(p.Data) } func bytePointer(b []byte) unsafe.Pointer { p := (*reflect.SliceHeader)(unsafe.Pointer(&b)) return unsafe.Pointer(p.Data) } 第二式 - 把[]byte转成string package test import "testing" import "unsafe" func ...阅读全文

博文 2015-11-16 10:00:00 fyxichen

Go语言实战笔记(三)| Go Doc 文档

《Go语言实战》读书笔记,未完待续,欢迎关注公众号flysnow_org,第一时间看后续笔记。 对于协作开发或者代码共享来说,文档是一个可以帮助开发者快速了解以及使用这些代码的一个教程,文档越全面,越详细,入门越快,效率也会更高。 在Go语言中,Go为我们提供了快速生成文档以及查看文档的工具,让我们可以很容易的编写查看文档。 Go提供了两种查看文档的方式,一种是使用go doc命令在终端查看,这种适用于使用VIM等工具在终端开发的人员,它们不用离开终端,既可以查看想查看的文档,又可以编码。 第二种方式,是使用浏览器查看的方式,通过godoc命令可以在本机启动一个web服务,我们可以通过打开浏览器,访问这个服务来查看我们的Go文档。 从终端查看文档 这种方式适用于在终端开发的,它们一般不像离开...阅读全文

博文 2017-03-09 15:52:22 飞雪无情flysnow_org

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

使用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...阅读全文