使用golang的标准库搭建网站--5.处理COOKIE

合理的使用cookie可以极大的提高网站的用户体验,这一篇文章主要来讨论一下,go中是如何处理cookie的。 声明 Go语言中通过net/http包中的SetCookie来设置: //设置cookie的方法声明 http.SetCookie(w ResponseWriter, cookie *Cookie) //Cookie的声明 type Cookie struct { Name string Value string Path string Domain string Expires ti...阅读全文

开源中国博客 2017-01-07 15:00:40 这里好像没有人

使用golang的标准库搭建网站--2.模板解析

模板的解析 既然是搭建网站, fmt.Fprintf(w, "Hello world, this is my first page!") 这种方式肯定就不能用了,得解析模板才行。 模板解析用到的包是”html/template”,先导包,然后改写Index函数: //先导入html/template包 import "html/template" func Index(w http.ResponseWriter, r *http.Request) { //解析指定模板文件index.html t...阅读全文

开源中国博客 2017-01-07 15:00:39 这里好像没有人

用go run命令启动main package中的多个文件

通常在main package中只有一个main.go文件,里面有程序的入口函数main()。 使用 go run main.go 就可以跑起程序了。 但是如果main.go文件比较长,希望将main.go拆分多个文件,比如在main package下,有a.go , b.go和main.go。 这个时候再用 go run main.go就会报错。 使用 go run *.go 可以解决问题。 $(function () { $('pre.prettyprint code').each(func...阅读全文

CSDN博客 2016-11-16 01:51 bdss58

以太坊go-ethereum客户端docker安装(二)开发(dev)环境搭建

在上一篇博客中,讲述了基于docker怎么搭建一个go-ethereum节点。作为开发人员,如果只是单纯的拥有一个Full node,还无法满足正常的开发。比如说,进行转账交易,你要考虑是否拥有一定的ETC,是否能够承受高昂的gas?基于这点,今天这篇博客就介绍一下如何搭建一个私有的dev环境。 方法一:利用现有开源 先给大家介绍一个现成的ethereum/client-go:test工具镜像。 下载工具 地址:https://github.com/pragmaticcoders/docker-...阅读全文

CSDN博客 2016-12-25 22:32 wo541075754

以太坊go-ethereum客户端docker安装(一)

最近一段时间忙于工作,就没来得及发表博客,但一直没有停止对区块链的研究。周末抽时间分享一下近期比较重大的收获之一——使用docker来搭建和使用以太坊的节点。本人已经顺利搭建出,开发环境,测试环境,Full node环境。后续会逐个以博客的形式分析出来,希望大家多多关注,共同探讨进步。 环境 第一次尝试是在云服务器的centos 6.5上面安装。由于docker要求centos必须6以上,而且kernel 版本必须2.6.32-431或更高。尝试将centos内核进行升级,但中间遇到一些问题,没...阅读全文

CSDN博客 2016-12-24 21:37 wo541075754

docker(8):使用alpinelinux 构建 golang http 看看能有多小

1,alpine linux 非常小 首先 alpine 非常的小,安装上了bash 之后也才 5mb。 golang 不需要其他的依赖,想看看是不是能在 alpine 上面跑呢。 搭建一个golang的环境,而不是把golang的环境放到alpine上面。 2,首先在centos 搭建golang环境 https://golang.org/doc/install 下载然后解压缩: tar -C /usr/local -xzf go1.7.4.linux-amd64.tar.gz 设置环境变量:...阅读全文

CSDN博客 2016-12-13 22:37 freewebsys

go错误处理——return,panic,defer

return和defer的顺序: return先返回,再运行defer,可以修改返回值: package main import ( "fmt" ) func main() { fmt.Println(test()) } //返回值为2 func test() (result int) { defer func() { result++ }() return 1 //return函数先返回 result被赋值为1 然后再result++ } 这里有个比较好玩儿的点,因为返回值是具名的,所以我们r...阅读全文

CSDN博客 2017-01-01 16:27 V_code

Alpha Go、Master为什么会下围棋

简单的说Alpha Go、Master就是一个函数y = f(x),x是当前棋子位置,y是x的应对棋子落位,也就是说下一步棋的位置,由于棋类的对抗性,显然y是对x最不利的一步走法。 假定有N个棋谱,每个棋谱有K步棋( 1<= k <361),当输入第1个棋谱的第一步棋时,使用y=f(x)计算,y就是Alpha Go、Master计算出来的第2步棋的落子位置,由于函数f没有学习好全部棋谱,所以y不是正确的走法,与棋谱中第2步棋比较有偏差,学习的目的就是让这个偏差最小趋近于零。Alpha Go、Ma...阅读全文

开源中国博客 2017-01-06 10:00:01 量子世界的我

Golang goroutine与调度器

我们都知道Go语言是原生支持语言级并发的,这个并发的最小逻辑单元就是goroutine。goroutine就是Go语言提供的一种用户态线程,当然这种用户态线程是跑在内核级线程之上的。当我们创建了很多的goroutine,并且它们都是跑在同一个内核线程之上的时候,就需要一个调度器来维护这些goroutine,确保所有的goroutine尽可能公平的使用cpu资源。 这个调度器的原理以及实现值得我们去深入研究一下。支撑整个调度器的主要有4个重要结构,分别是Sched、M、P、G,Sched定义在pr...阅读全文

开源中国博客 2017-01-05 10:00:08 吃一堑消化不良

Golang 解决"go get xxxx"失败的问题

【问题1】 sudo go get github.com/nsf/gocode sudo: go: command not found 【解决1】 将已安装的go可执行程序链接到sudo的env路径下,例如下面的操作: sudo ln -s /usr/local/go/bin/go /usr/local/bin/ 【问题2】 sudo go get github.com/nsf/gocode sudo: cannot download, $GOPATH not set. For more det...阅读全文

开源中国博客 2017-01-05 10:00:01 吃一堑消化不良

VSCode for go 1.7

终于受不了LiteIDE函数定义的跳转,每次都需要等2-3秒。试了一下VSCode秒开的快感之后,果断换!但是VSCode也不是十全十美,需要配置一番! 1.输入下面的命令,避免自动提示出现PANIC(GO升级到1.7之后出现的bug) gocode close gocode -debug -s 2. cmd+shift+b to run go build -v . task.json { "version": "0.1.0", "command": "go", "isShellCommand"...阅读全文

CSDN博客 2017-01-01 19:32 wk3368

从一个WaitGroup的例子看Go语言的Upvalue的传递

Go语言的闭包捕获的外部变量,我还是习惯以Lua的叫法,称之为Upvalue,毕竟Go借鉴了很多Lua的特性。 让我们首先看五个几乎一样的代码片段。 package main import ( "log" "sync" ) func main() { wg := sync.WaitGroup{} for i := 0; i < 5; i++ { wg.Add(1) go func(wg sync.WaitGroup, i int) { log.Printf("i:%d", i) wg.Done(...阅读全文

开源中国博客 2017-01-02 01:00:01 LinkerLin

写了一个Java like的ExecutorService的Go语言实现

练习下刚刚学的Go语言。GoExecutors 主要用法可以看main.go文件。 主要是想用Java处理并发的ExecutorService系列工具类的模式,在Go语言中重写,体验下两种语言的异同。 其中,第一个版本用了一个共享的map,后来改成现在这样子,用闭包来绑定数据到Callable上。 体会就是,Go语言还是尽量用goroutine和chan比较好。阅读全文

开源中国博客 2017-01-01 23:00:01 LinkerLin

越来越流行的Go

最近看文章,咨询,发现go语言已经成为了主流语言。而且大家对于go语言的讨论也越来越多了。因为采用了自动垃圾回收机制,而且在不怎么牺牲性能的前提下,大大加速了原来c的开发速度。没有java的臃肿。也许以后go会成为排名前几的主流语言。替代很多原来c,c++,java开发的语言。阅读全文

开源中国博客 2016-12-31 20:00:03 miaojiangmin

云之讯短信接口GO实现

将项目变量appId, accountSId和token使用自己的替换掉就可以了。 发送信息时直接调用函数SendSMS即可,传入参数电话号码,模板ID以及模板中参数。由于云之讯的参数是以逗号分隔的,所以参数值中不能有逗号,同时参数值也不能为空。 package UcGoSdk import ( "bytes" "errors" "crypto/md5" "encoding/base64" "encoding/json" "fmt" "io/ioutil" "net/http" "net/url...阅读全文

开源中国博客 2016-12-29 21:00:01 Victorfun

初识go语言

初识go语言 http://gd-rus-public.cn-hangzhou.oss-pub.aliyun-inc.com/attachment/201612/29/20161229180443/go1.7.4.windows-amd64.msi http://gd-rus-public.cn-hangzhou.oss-pub.aliyun-inc.com/attachment/201612/29/20161229185544/go1.7.4.darwin-amd64.pkg http://g...阅读全文

CSDN博客 2016-12-04 23:48 loongshawn

解读2016之Golang篇:极速提升,逐步成熟

Go语言已经7岁了!今年8月,Go 1.7如期发布。撰写本稿时,Go 1.8的测试版也出来了。我们正在热切盼望着明年2月的Go 1.8正式版。 如果你关注 TIOBE的编程语言排行榜 就会发现,截止到2016年11月,Go语言从原先的第50多位经过多次上窜已经跃到了第13位,跻入绝对主流的编程语言的行列!这份排行榜每月都会更新,并基于互联网上的程序员老鸟、教学课程和相关厂商的数量进行排名。在国内,从我这几年运营Go语言北京用户组的经历来看,可以明显地感觉到Go语言的在国内的大热。N多初创互联网企...阅读全文

CSDN博客 2016-12-20 20:28 andylau00j