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

16.蛤蟆笔记go语言——Web服务器

16.蛤蟆笔记go语言——Web服务器 http包建立WEB服务器 代码如下: package main import ( "fmt" "log" "net/http" "strings" ) func sayhelloName(w http.ResponseWriter, r*http.Request) { r.ParseForm() //解析参数,默认是不会解析的 fmt.Println(r.Form)//这些信息是输出到服务器端的打印信息 fmt.Println("path",r.URL.Path) fmt.Println("scheme",r.URL.Scheme) fmt.Println(r.Form["url_long"]) for k,v := range r.Form { f...阅读全文

博文 2016-06-25 00:00:02 notbaron

Go抓取网页数据并存入MySQL和返回json数据<四>

上一节已将将需要的数据从网站http://www.gratisography.com/ 抓取并存入数据库【使用crawldata.go中的InsertData(&imageDatas)函数】,现在需要将数据从数据库indiepic的表gratisography中取出并然会json格式的数据。 项目文件夹结构如下: indiepic ├── README.md ├── crawldata │ ├── crawldata.go │ └── database.go └── indiepic.go 现在将获取数据的函数写在database.go中: func GetAllImages() (imageDatas ImageDatas, err error) { // 连接数据库 db, err :=...阅读全文

博文 2017-02-09 14:14:18 Arron_yr

Go语言学习一 :基础语句

安装sublime参考:http://blog.csdn.net/cyxcw1/article/details/10329481 本系列参考:http://www.runoob.com/go/go-ide.html 有安装开发工具的说明 注意:以上的注册码在sublime3.0版本中不适用 第一个程序 //第一个Go程序,注意没有分号结尾、 //本人实用的是sublime作为编辑器的 //package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。 package main//这一行代码定义了包名 //告诉 Go 编译器这个程序需要使用 fmt 包(的函数,或其他元素),fmt 包实现了格式化 IO(输入/输出)的函数。 import ( 阅读全文

博文 2016-04-13 21:00:01 shawncheer

【golang】wait,why not safe

slice?俺知道,不就是基于数组的一个视窗嘛!出个题呗~好~package mainfunc main() { var arr = [10]int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9} s := arr[2:6] modify(s)}func modify(tmp []int) { // 实现该函数,把arr[8]的值修改为200}你千万别告诉我是这样实现的:var point = &tmp[3]point += 3*point = 200这样做你真的可费瞎了心了 :)因为golang指针不允许运算,像这样会抛invalid operation: point += 3 (mismatched types *int and int)错误~~~算了吧,还是放着让哥来浅蓝色...阅读全文

博文 2017-02-10 11:11:28 qingkechina

golang pprof 使用

自:http://www.cnblogs.com/yjf512/archive/2012/12/27/2835331.html go中有pprof包来做代码的性能监控,在两个地方有包: net/http/pprof runtime/pprof 其实net/http/pprof中只是使用runtime/pprof包来进行封装了一下,并在http端口上暴露出来 pprof包 web 服务器 如果你的go程序是用http包启动的web服务器,你想查看自己的web服务器的状态。这个时候就可以选择net/http/pprof。你只需要引入包_"net/http/pprof",然后就可以在浏览器中使用http://localhost:port/debug/pprof/直接看到当前web服务的状态,包括C...阅读全文

博文 2015-06-17 20:23:37 LvanNeo

基于 Web 的 Go 语言 IDE - Wide 1.3.0 发布!

http://symphony.b3log.org/article/1437292757551 欢迎各位提意见、建议,参与到 Wide 开源项目中 :-) $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('

    ').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numberi...阅读全文

博文 2016-03-19 09:00:00 DL88250

17.蛤蟆笔记go语言——表单

17.蛤蟆笔记go语言——表单 表单是我们平常编写Web应用常用的工具,通过表单我们可以方便的让客户端和服务器进行数据的交互。对于以前开发过Web的用户来说表单都非常熟悉,但是对于C/C++程序员来说,这可能是一个有些陌生的东西. 表单是一个包含表单元素的区域。表单元素是允许用户在表单中(比如:文本域、下拉列表、单选框、复选框等等)输入信息的元素。表单使用表单标签(

)定义。 在Request里面的有专门的form处理,可以很方便的整合到Web开发里面来.由于不能信任任何用户的输入,所以我们需要对这些输入进行有效性验证 表单还有一个很大的功能就是能够上传文件 表单输入 新建表单login.gtpl如下: <...阅读全文

博文 2016-08-31 17:00:42 notbaron

Go语言_array,slice,map

首先庆祝下golang终于通过了gfw的审核,可以不用翻墙访问了。goer就可以光明正大地访问http://golang.org/ 这次还是要说说array,slice,map。虽然前面已经说过了,但是实际使用中发现对这几个的使用和理解还是不够详细 现在再重新看看这几个类型 array类型 array是固定长度的数组,这个和C语言中的数组是一样的,使用前必须确定数组长度。但是和C中的数组相比,又是有一些不同的: http://www.cnblogs.com/yjf512/archive/2012/06/14/2549929.html 1 Go中的数组是值类型,换句话说,如果你将一个数组赋值给另外一个数组,那么,实际上就是将整个数组拷贝一份 2 如果Go中的数组作为函数的参数,那么实际传递的参...阅读全文

博文 2015-06-17 20:15:59 ywh147

搭建基于Vim的Go IDE

第一步当然是安装Go的编译环境了:http://golang.org/doc/install.html 安装好之后复制官方支持的脚本:go/misc/src/vim下的文件到$VIMRUNTIME,也可以从这里获取最新版本:https://github.com/jnwhiteh/vim-golang 这样基本就能高亮语法和自动完成了,如果想要更多的自动完成功能,可以安装这个基于服务器和客户端的自动完成程序,据说速度很快: https://github.com/nsf/gocode 如果遇到错误需要打补丁:https://github.com/nsf/gocode/issues/6...阅读全文

博文 2015-06-17 20:12:40 richardsa

说说这篇「我为什么从python转向go

说说这篇「我为什么从python转向gohttp://www.jiaoyou8.com/friends_diary/apingsence/0_0_0/view_0023790569_yes_0_0.html http://www.jiaoyou8.com/friends_diary/apingsence/0_0_0/view_0023802627_yes_0_0.html http://www.jiaoyou8.com/friends_diary/apingsence/0_0_0/view_0023806575_yes_0_0.html http://www.jiaoyou8.com/friends_diary/apingsence/0_0_0/view_0023910165_yes_0_0...阅读全文

博文 2016-09-01 18:00:03 Bandita

sublime text 3安装golang环境

1、安装sublime text 3 ,目前gosublime不再支持sublime text2 2、安装之后打开sublime,安装package control,打开控制台control+`,在控制台输入: import urllib.request,os,hashlib; h='7183a2d3e96f11eeadd761d777e62404'+'e330c659d4bb41d3bdf022e94cab3cd0'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_open...阅读全文

博文 2016-09-09 17:00:01 lyKanTianXia

go-mysql-elasticsearch实现mysql 与elasticsearch实时同步深入详解

引言: go-mysql-elasticsearch 是国内作者开发的一款插件。测试表明:该插件优点:能实现同步增、删、改、查操作。不足之处(待完善的地方): 1、仍处理开发、相对不稳定阶段; 2、没有日志,不便于排查问题及查看同步结果。 本文深入详解了插件的安装、使用、增删改查同步测试。 1. go-mysql-elasticsearch 插件安装 步骤1:安装go yum install go 步骤2:安装godep go get github.com/tools/godep 步骤3:获取go-mysql-elastisearch插件 go get github.com/siddontang/go-mysql-elasticsearch 步骤4:安装go-mysql-elastisear...阅读全文

博文 2016-09-02 14:00:02 wojiushiwo987

在线安装 IntelliJ IDEA的 golang 插件

http://my.oschina.net/whutzl/blog/528712?p={{page}} IntelliJ IDEA是非常受欢迎的开发工具,如果我们希望使用IntelliJ IDEA 进行Go语言的开发,需要安装Golang插件。 网上的资料几乎都是建议开发者编译源码进行安装,但这是不必要的。还有更简单快捷的在线安装方式,这里给出基本步骤(基于IntelliJ IDEA 14.1,不同版本界面会有细微差异,但步骤相似): 1. 在“Settings”菜单,点击“Plugins”,打开插件管理窗口: 2. 点击“ Browse repositories”,打开插件仓库管理窗口: 3. 点击“Manage repositories...”,打开自定义仓库窗口: 4. 在URL中输入...阅读全文

博文 2016-09-03 17:00:07 u011686226

golang tips

go install gcflags -I -N https://gist.github.com/3025333 https://gist.github.com/3025333 Turning off optimization and inlining in Go gc compilers Pass the flags -gcflags '-N -l'. $ go build -gcflags '-N -l' [code.go] or $ go install -gcflags '-N -l' [code.go] References http://code.google.com/p/go/issues/detail?id=3363 https://groups.google.com/for...阅读全文

博文 2016-08-17 03:00:00 webundle

golang自动登录https连接并解析得到的json返回值

https返回的json数据格式为 go源码如下 主要演示go语言自动登录HTPPS连接及cookie的使用,如何解析JSON数据等特性 https返回的json数据格式为 type item struct { Id, List_type, Severity int list_type_string, Name, Expiration string list_type_name, Severity_name string } type resData struct { Total_count, Total_page, Expect_page, Num_per_page int Sort_by, Sort_order string List []item } 注意结构体必须是大写字母开头的成员...阅读全文

博文 2016-08-04 20:00:09 08048000

[译] Go 1.7 中程序结构的解析

Go 1.7终于发布了,这个版本的一大特色是引入了一个新的基于SSA的编译器! SSA是一个描述低层次的操作集合的方法,比如隐射到系统底层操作的加载和存储操作。而SSA的特殊之处在于它有无限数量的寄存器。它本身不是特别有趣,除了它启用了一类很容易理解的优化传值这一点以外,因为这个特性使得编译速度更快,编译出的二进制文件更小。Go的新版本发布说明实现正在成熟,并且开始利用llvm(wider world of compiler technology)中的技术和实践。 新的基于SSA后端除了带来的性能提升,还提供了一系列的新工具允许开发者与SSA机制交互。这个工具输出了SSA过程语句,优化传值,和Go特有的汇编。当使用go工具来反汇编时,可以通过设置GOSSAFUNC环境变量为函数名,比如: $...阅读全文

博文 2016-08-23 04:00:07 shenjiaxu

go语言方法Value Receiver, Pointer Receiver各种不同情况的实验笔记

注意: 此文章只是我的个人笔记,如有谬误,错误, 请一定指出! for range 问题 http://stackoverflow.com/questions/30577212/go-for-range-slice-and-goroutine-method-invocation-the-logic-behind package main import ( "fmt" "time" ) type field struct { name string } func (p *field) print() { fmt.Printf("print: p: %p, v: %s\n", p, p.name) } func main() { data := []field{ {"one"},{"two"},...阅读全文

博文 2016-09-17 16:00:04 htyu_0203_39

go-mysql-elasticsearch实现mysql 与elasticsearch实时同步深入详解

引言: go-mysql-elasticsearch 是国内作者开发的一款插件。测试表明:该插件优点:能实现同步增、删、改、查操作。不足之处(待完善的地方): 1、仍处理开发、相对不稳定阶段; 2、没有日志,不便于排查问题及查看同步结果。 本文深入详解了插件的安装、使用、增删改查同步测试。 1. go-mysql-elasticsearch 插件安装 步骤1:安装go yum install go 步骤2:安装godep go get github.com/tools/godep 步骤3:获取go-mysql-elastisearch插件 go get github.com/siddontang/go-mysql-elasticsearch 步骤4:安装go-mysql-elastisear...阅读全文

博文 2016-09-05 08:00:04 wojiushiwo987

在windows环境下搭建go编程环境

go语言是google近几年刚推出的一种语言,以前经常关注每月编程语言排行榜,对此语言只是听过,没想到哪天我也会使用到这种语言。因为go语言很年轻,所以网上学习资料很难找,老外那里资料会多些,但是国内访问又会受到限制,真是让人恼火。 先到http://code.google.com/p/go/downloads/list上下载两个文件。 这两个文件是一定都需要的。开始我只是将压缩包解压了,但是一直报错,莫名其妙的。还得说说下着两个文件有多费劲。从上午到下午四点,我一直在下载这两个文件,但是真心是下载不下来啊。国内访问老外的网站受限太严重了,我是彻底无语了(也许跟公司里面网速受限多少有些关系吧)。但是工作还得继续啊。东西是死的,人是活的,我往qq上一瞄,见一正在日本留学的同学在线,忙让他帮我下...阅读全文

ccah-500 第46题 Which scenario will go undetected

46.You are running Hadoop cluster with all monitoring facilities properly configured. Which scenario will go undetected? A. HDFS is almost full B. The NameNode goes down C. A DataNode is disconnected from the cluster D. Map or reduce tasks that are stuck in an infinite loop E. MapReduce jobs are causing excessive memory swaps Answer: B --> D refere...阅读全文

博文 2016-09-14 17:00:00 tianbaochao

Go语言 数组

介绍 Array 是值类型,Slice 和 Map 是引用类型。他们是有很大区别的,尤其是在参数传递的时候。 另外,Slice 和 Map 的变量 仅仅声明是不行的,必须还要分配空间(也就是初始化,initialization) 才可以使用。 第三,Slice 和 Map 这些引用变量 的 内存分配,不需要你操心,因为 golang 是存在 gc 机制的(垃圾回收机制) 啊 http://studygolang.com/articles/268...阅读全文

博文 2016-02-01 17:00:00 project

16.go开源groupcache项目蛤蟆笔记——使用部署说明及小结

16.go开源groupcache项目蛤蟆笔记——部署 groupcache没有服务端与客户端之分。本身没有main函数就是一个库,可以被其他应用集成到代码中。 主要结构说明: consistenthash一致性hash哈希算法, lru(提供了LRU缓存算法,最终存数据的地方,里面使用了两种数据结构,map和list,map用来保存key-value数据,list按访问顺序保存value,这样实现lru,在清理数据的时候,将最久未访问的数据清除掉。 singleflight实现多次相同请求只去获取值一次,减少资源消耗。不会都将请求发到数据库或者其他的实例中,以此来避免”惊群”。 groupcachepb同一个group中的多个实例交互数据,使用pb,减少数据体积。 其他源文件: bytev...阅读全文

博文 2016-09-03 15:00:02 notbaron

老虞要学GoLang-代码规范

开始一项新语言前需要先了解该语言的语法(如果你有其他语言的编程知识的话),开始学习前,我们一起了解下Go的格式。 如果大家都统一编码风格,那么在维护他人代码时就能带来便利。同时我们在提交代码前执行一次fmt命令,以便提交统一风格的代码。 注释 Go支持C语言风格的“//”块注释,也支持C++风格的行注释,同时可使用/**/进行包的 注释. 我们看string包的源代码,使用//注释了包,方法以及行。我们需要养成好的习惯,尽量去多写些注释,这样不但有利于自己以后的回顾,已给他人阅读你的代码提供了方便,当然Go下的源代码使用Go命令能够生成文档,而文档的描述内容源自注释,在编码阶段就同步书写注释,而不要在整理代码时书写注释(此时的思维没有编码时清晰,补救中总容易丢失些东西)。 1// Copyr...阅读全文

博文 2015-07-21 15:00:00 Gopher老虞

Golang 升级到 1.7 后,之前正确的函数出现错误,分析原因及解决办法

最近尝试把开发环境,升级到Golang1.7.1后,程序会偶发性的宕掉,查看日志后,发现总是在一个计算切片的哈希值的地方,错误信息是: unexpected fault address 0xc043df4000, fatal error: fault 在1.7之前程序持续运行2年了,从来没有出现这个问题,怀疑是Golang编译器升级到SSA后导致的。将程序的代码精简为以下函数: //本代码的主要作用是,把一个字符串的Assii的值累加起来。 func SimpleCrc(ptr uintptr, size int) int { ret := 0 maxPtr := ptr + uintptr(size) for ptr < maxPtr { b := *(*byte)(unsafe.Poin...阅读全文

博文 2016-10-14 18:00:03 lintingte

Golang语言学习资源

一、知名的Golang开源框架 1. Beego: 一个国产的HTTP框架,我们可以用它快速开发各种应用程序。 官网地址: http://beego.me 2. Gogs: 一个国产的自主Git托管服务程序,我们可以用它来搭建自己的Git服务器。 官网地址:http://gogits.org 3. Docker: 一个软件部署解决方案,也是一个轻量级的应用容器框架。使用Docker,我们可以轻松地打包、发布和运行任何应用。 官网地址:http://www.docker.com 非官网网站:http://www.docker.org.cn, https://docker.cn 4. Skynet: 一个分布式服务框架,他可以帮助我们构建起大规模的分布式应用系统。 源码地址:https://gi...阅读全文

博文 2016-10-10 16:00:03 weiyuefei

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

博文 2015-06-17 20:05:13 gzw13999

Go语言开发工具 LiteIDE0.1 更新

LiteIDE简介 go语言开发工具,更新到0.1.5。 实现特征: *) UTF8文件读写 *) GO语法高亮 *) 项目管理 *) 支持.pro项目编译 *) 支持无项目单独文件编译 *) gopromake自动编译工具 *) 可以从编译错误中定位到源码 项目主页: http://code.google.com/p/golangide/ 项目下载: http://code.google.com/p/golangide/downloads/list GO编译器下载: http://code.google.com/p/gomingw/ 操作系统支持: WIN3...阅读全文

博文 2015-06-17 23:00:44 visualfc

创建尽可能小的 Docker 容器

注:本文由 Adriaan de Jonge 编写,本文的原文地址为 Create The Smallest Possible Docker Container 当我们在使用 Docker 的时候,你会很快注意到你正在下载很多 MB 作为你的预先配置的容器。一个简单的 Ubuntu 容器很容易超过 200 MB,并且随着在上面安装软件,尺寸在逐渐增大。在某些情况下,你不需要任何事情都使用 Ubuntu 。例如,如果你只是简单的想运行一个 web 服务,使用 GO 编写的,没有必要围绕它使用任何工具。 我一直在寻找尽可能小的容器入手,并且发现了一个: docker pull scratch scratch 镜像是完美的,真正的完美!它简洁,小巧以及快速。它不包含任何 bug,安全泄漏,慢的代码...阅读全文

博文 2017-02-09 13:40:37 yexiaobai

golang利用http模块构建redis读写查api

前沿: 这两天试着用golang做一些高性能的api,不想把压力到聚合在平台的接口上。平台因为要做很多耗时间的操作,uwsgi下会出现少许错误,找了一圈不知道如何解决该问题。 暂时先绕道而行,先拿简单的接口来做测试,慢慢的把复杂的操作也迁移到golang上。 话说以前高性能的接口,我用的最多的方案还是nginx lua的组合,超强,大家可以看看我以前写的nginx lua的文章,各方面没得说。只是这段时间正在看golang 的,就试着用golang实现redis的api,先来个简单的试试手。 先搞下golang的redis模块 Python cd $GOPATH/src git clone git://github.com/alphazero/Go-Redis.git redis cd re...阅读全文

博文 2017-04-04 19:16:09 rfyiamcool

17.蛤蟆笔记go语言——表单

17.蛤蟆笔记go语言——表单 表单是我们平常编写Web应用常用的工具,通过表单我们可以方便的让客户端和服务器进行数据的交互。对于以前开发过Web的用户来说表单都非常熟悉,但是对于C/C++程序员来说,这可能是一个有些陌生的东西. 表单是一个包含表单元素的区域。表单元素是允许用户在表单中(比如:文本域、下拉列表、单选框、复选框等等)输入信息的元素。表单使用表单标签()定义。 在Request里面的有专门的form处理,可以很方便的整合到Web开发里面来.由于不能信任任何用户的输入,所以我们需要对这些输入进行有效性验证 表单还有一个很大的功能就是能够上传文件 表单输入 新建表单login.gtpl如下: <...阅读全文

博文 2016-08-31 17:00:10 notbaron

关于Golang语言的web编程的实例及常见问题

多核处理器越来越普及。有没有一种简单的办法,能够让我们写的软件释放多核的威力?是有的。随着Golang, Erlang, Scala等为并发设计的程序语言的兴起,新的并发模式逐渐清晰。正如过程式编程和面向对象一样,一个好的编程模式有一个极其简洁的内核,还有在此之上丰富的外延。可以解决现实世界中各种各样的问题。 她的logo~ Go语言的一个很大的优势就是内置了goroutine机制,使得开发者可以方便地编写并发程序。 go的web编程里,也出现了一个web框架 https://github.com/astaxie/beego 有朋友用过,感觉不错。。。 安装 ,大家要是安装不了,就下载源码编译,看readme 。。。。 Python easy_install mercurial or yum...阅读全文

博文 2017-04-04 19:08:11 rfyiamcool

使用golang+java实现基于ecb的3eds加解密

http://www.100hack.com/2014/04/14/golang%E4%B8%AD%E7%9A%84des%E5%8A%A0%E5%AF%86ecb%E6%A8%A1%E5%BC%8F/ henry(454213807) 0:26:14继续下午问的 ECB 问题. 在 go 的 issues 里找到https://code.google.com/p/go/issues/detail?id=5597有人为标准库写好了补丁. 但是项目管理者拒绝了. 另外这个补丁的地址还在 https://codereview.appspot.com/7860047/还有完整的例子. 我直接拷贝下来, 跑了一下, 和 java 的一致 Golang中的DES加密ECB模式 Golang其实已经实现...阅读全文

博文 2016-09-07 07:00:02 zolo

使用Go语言编写Web程序(二)

上一节我们使用Go语言写了一个进行web服务端口侦听和简单的URL请求输出,但并没有实现我们上网浏览网页时所看到的丰富多彩的html页面,当我们需要把分离出来的html页面加入到Go语言编写的服务时,我们需要在服务程序中导入html/template。 import( "fmt" "log" "net/http" "html/template" ) 然后我们创建一个template文件,命名为index.html放在main.go相同文件夹下,文件中填写如下代码:

欢迎使用html文件

这是一个分离出来的html文件加入到了Go Web服务中

main.go填写如下代码: package main import ( "fmt" "html/template" ...阅读全文

博文 2016-08-21 09:00:01 知止software

说说这篇「我为什么从python转向go

恩看了这篇我为什么从python转向go,看来作者也是 KSO 轻办公/企业快盘团队的。作为快盘从无到有时期的工程师之一(总是被潇洒哥说他们改我留下的 bug ),又恰好是 Python/Go 双修(大雾其实我是 Rust 党),其实一开始我是拒绝的,duang duang duang,那就随手写一点把。 一段段来吧,首先作者说 Python 是动态语言 python是一门动态语言,不是强类型系统。对于一个变量,我们有时候压根不知道它是什么类型,然后就可能出现int + string这样的运行时错误。 在python里面,可以允许同名函数的出现,后一个函数会覆盖前一个函数,有一次我们系统一个很严重的错误就是因为这个导致的。 事实上,如果是静态检查,pylint 和 pyflakes 是可以做...阅读全文

博文 2016-09-01 19:00:01 CMGS

go语言原生http库分析 (2)

这里我们分析默认的Handler–DefaultServeMux 在所有介绍之前,我们先给出两个类: type ServeMux struct { mu sync.RWMutex m map[string]muxEntry hosts bool // whether any patterns contain hostnames } type muxEntry struct { explicit bool h Handler pattern string } ServeMux实现了Handler借口的ServeHTTP函数;我们知道GO语言中,实现了接口的所有函数,则实现该接口 // ServeHTTP dispatches the request to the handler whose /...阅读全文

博文 2016-08-22 20:00:14 idwtwt

golang类型方法

## methods on values or pointers func (s *MyStruct) pointerMethod() { } // method on pointer func (s MyStruct) valueMethod() { } // method on value go语言为类型定义方法时有上述两种方式,初学者很容易陷入迷惑中,这两种定义方式有什么区别?该如何选择? ### 区别 首先我们把函数的形式稍微改变一下: func (s *MyStruct) pointerMethod() ⇒ pointerMethod(s *MyStruct) func func (s MyStruct) valueMethod() ⇒ valueMethod(s MyStruct...阅读全文

博文 2017-02-09 19:58:18 shanks

老虞学GoLang笔记-常量

常量 常量和C#中的概念相同,在编译期被创建。因为在编译期必须确定其值,因此在声明常量时有一些限制。 其类型必须是:数值、字符串、布尔值 表达式必须是在编译期可计算的 声明常量的同时必须进行初始化,其值不可再次修改 Doc http://golang.org/doc/go_spec.html#Constants http://golang.org/doc/go_spec.html#Constant_expressions http://golang.org/doc/go_spec.html#Constant_declarations http://golang.org//doc/go_spec.html#Iota 语法 const关键字用于声明常量 const [(] 名称 [数据类型] =...阅读全文

博文 2015-07-21 15:00:01 Gopher老虞

读《Introducing Go》O'Reilly 第 5 章

第5章,数组,切片,字典,33页 数组是同一个长度类型顺序存储的元素集。 var x [5]int func main() { var x [5]int x[4] = 100 fmt.Println(x) } 数组下标从0 开始。 上面代码输出: [0 0 0 0 100] var x [5]float64 x[0] = 98 x[1] = 93 x[2] = 77 x[3] = 82 x[4] = 83 var total float64 = 0 for i := 0; i<5; i++ { total += x[i] } fmt.Println(total/5) 上面代码:计算数组中五个数的平均值。 var x [5]float64 x[0] = 98 x[1] = 93 x[2] = ...阅读全文

博文 2016-04-16 11:00:01 wide288

在Deepin Linux上用Sublime Text3配置GoLang开发环境

安装git 因为golang是通过git来管理远程包的,所以我们首先要安装git。具体可参考官网。 ➜ tonny@tonny-pc ~ sudo apt-get install git ➜ tonny@tonny-pc ~ git version git version 2.8.1 安装Golang 1) 首先到https://golang.org/dl/选择适合你系统的安装包,(墙内:http://golangtc.com/download)。 2)我这里选择的是:go1.6.3.linux-amd64.tar.gz,下载完成安装到指定目录即可。我这里是/usr/local。 3)安装完成后环境变量已经自动设置好了,可以呼出终端命令行输入命令查看 ➜ tonny@tonny-pc ~ w...阅读全文

博文 2017-02-10 15:52:28 技术学习

go开发

Go在eclipse的环境搭建 http://www.tuicool.com/articles/YBryAr Eclipse下如何安装Go插件 步骤 1、下载最新版本的Eclipse Eclipse的Go插件在线安装(就是Eclipse里的Install Software)Java程序员都知道 http://goclipse.github.io/ 是在没办法下载的 Eclipse的GO插件手动安装下载 https://github.com/GoClipse/goclipse.github.io 2、另外还要安装一个oralce的工具,因为设置Go语言的时候会用到,不然会一直提示报错 https://github.com/golang/tools 下载地址 https://storage.go...阅读全文

博文 2016-01-15 17:00:03 shizhijie737

Golang、Php、Python、Java基于Thrift0.9.1实现跨语言调用

目录 目录 什么是Thrift 1 Thrift内部框架一瞥 2 支持的数据传输格式数据传输方式和服务模型 3 Thrift IDL Thrift的官方网站在哪里 在哪里下载需要哪些组件的支持 如何安装 1 安装依赖插件 2 安装最新版PHP5 3 下载thirft091版本 4 编译安装 GolangJavaPythonPHP之间通过Thrift实现跨语言调用 1 Golang 客户端和服务端的实现及交互 2 python 客户端的实现与golang 服务端的交互 3 php 客户端的实现与golang 服务端的交互 4 java 客户端的实现与golang 服务端的交互 扩展阅读 什么是Thrift 0.1 Thrift内部框架一瞥 Thrift是一种可伸缩的跨语言服务的发展软件框架。它...阅读全文

博文 2016-09-08 12:00:04 狮子

【go语言从零单排1】在mac环境下配置go,Hello world!

今天终于放假回家,太原也下起了久违的大雪,非常适合写代码学习。 go语言作为年轻新锐的语言广受关注,非常火爆的docker也是基于go语言的。我想在未来的工作中,go、docker这些我都会大量接触,尽早掌握也是大有好处。另外受到基友和未来老大的影响,决心开始从零学习go语言。 主要是分为前期,中期和后期吧。前期准备跟着无闻的Go编程基础视频来,边看边敲,看几本书来巩固基础。接着中期目标在开学前做一个项目,挂到github。入职后继续学习尽量接手go相关的项目来做。后期我想就是可以写本书了……远的到时候再说。 我使用的是mac,OS X 10.9.5,go的安装不多提。主要记录下配sublime text 3和gosublime的过程。 首先在官网下载st3,http://www.subli...阅读全文

博文 2015-06-17 23:01:49 yhl162139

[Go] --- Win7下搭建Go语言开发环境

Email : hahayacoder@gmail.com 1 下载适合window版本的Go安装包,下载地址http://code.google.com/p/go/downloads/list 2 下载适合window本本的LiteIDE,下载后解压即可使用 下载地址http://code.google.com/p/golangide/downloads/list 3 解压下载的Go安装包,开始配置环境变量 4 新建一个名为GOROOT的环境变量 5 在系统的Path环境变量中添加go的bin目录 6 打开LiteIDE的bin目录下的liteide.exe,开始配置Go的编译环境,依次点击菜单栏上的的:查看 -> 选项 -> LiteEnv,因为电脑上装的32位系统,所以双击win32....阅读全文

博文 2015-06-17 23:01:52 qiurisuixiang

用golang写一个http代理,可以抓包和科学上网

用golang写一个http代理,可以抓包和科学上网 缘起 因为在工作中需要对上网进行限制,只让我们的app上网,意思就是放行app请求的所有域名或ip,而其他域名都禁止,所以我需要对app的http请求进行抓包。上网搜了一下,win下的fiddler不错,可惜我用的是Linux系统,fiddler不跨平台,找了下linux下的抓包软件,当然tcpdump和wireshare是足够强大的,完全可以实现我要的小小要求,但用起来有一定的复杂性,门槛稍高。在网上找到其他类似的软件还挺多,charles、NProxy等,最后发现mitmproxy最符合我的胃口,如图: 但是mitmproxy的安装依赖太多,python就是这样,一不小心就报错了,so,想着用golang实现类似的功能,自己也很喜欢g...阅读全文

博文 2016-08-23 00:00:02 sheepbao

golang coding [3]

golang web 一个简单的web Demo. 可参考 Writing Web Applications 项目目录结构 main.go // web project main.go package main import ( "log" "net/http" "text/template" ) type WebData struct { Name string } var name string func rootHandler(w http.ResponseWriter, r *http.Request) { t, _ := template.ParseFiles("tmpl/hi.html") if r.Method == "GET" { } else { //请求 name = r...阅读全文

博文 2016-09-17 11:00:01 7explore-share

我们用 golang 实现了一个 unicode 版的 parsec 。

我的团队用到了一些简单的文本解析功能,就移植了 haskell 的 parsec 库。 https://github.com/Dwarfartisan/goparsec 通过了第一个测试,应该各个组合子已经可用了。这个其实参考了同行的一个非常优质的 goparsec 实现 https://github.com/sanyaade-buildtools/goparsec/blob/master/parsec/parsec.go 如果不是因为他实现的是 byte 版,而我需要unicode支持,我才不会自己造轮子。 Parsec 是 Haskell 上一个重要的库,写语法解析之类的功能相当方便,haskell 有一份很有名的入门教程《Write Yourself a Scheme in 48 Ho...阅读全文

博文 2017-02-09 16:57:34 march.liu

go学习

对于go的学习,需要注意的地方。 1、特别注意,go中可以使用go env命令查看我们可以在环境变量中设置的变量。 2、一般的输出使用内建函数print或者println就可以了,fmt.printXXX函数有更多的作用,比如格式化输出。同时注意,内建的println并不是很好用,一般都是会在函数运行完之后才会被调用。 3、注意,在go中,同时存在函数和方法两种概念,这点和java是不一样的。在go中,类的函数叫做方法,而不是类的函数就是函数。 4、系统输出数组喜欢用[]并使用空格作为元素分隔,所以不要以为[]和空格是数据本来就又的,这点需要注意! 5、java以文件学习,因为java中国一个文件对应一个类,而go以模块学习,因为go中都是直接调用模块的函数,而模块的函数都分布在模块下的文件...阅读全文

博文 2016-09-02 17:00:02 hangeqq685042