go 语言 Makefile 指定依赖包位置

编译 go 程序可以使用自带的一些 Makefile 脚本来简化编写 Makefile 。官方的文档过于简略,没提到需要指定依赖包位置的方法。翻过那几个脚本代码后,发现原来有 LDIMPORTS 和 GCIMPORTS 可以指定。 比如: include $(GOROOT)/src/Make.inc LDIMPORTS=-L ./pkg/_obj GCIMPORTS=-I ./pkg/_obj TARG=tool GOFILES=\ tool.go\ include $(GOROOT)/...阅读全文

博客园 2012-07-02 09:26 shihao

Go语言工具go get的一点问题

使用go get下载github.com等网站的代码时,有时候会发现下载的代码与网站上的代码不一致。如seelog库 查看了go 1.1.2源码中get.go,发现下载代码时会首先查看命名为"go1"的tag。如果有,则下载此tag的代码,而非master分支的当前代码 解决方法(简单一点的): 到$GOPATH/src/第三方库源代码目录,执行git checkout master(或其他分支),切换分支; 执行go get <第三方库>命令,重新编译pkg中.a库文件; 重新go buil...阅读全文

博客园 2013-10-11 09:39 hujunfei

beego cache

package beego import ( "errors" "fmt" "strconv" "sync" "time" ) var ( DefaultEvery int = 60 // 1 minute ) type BeeItem struct { val interface{} Lastaccess time.Time expired int } func (itm *BeeItem) Access() interface{} { itm....阅读全文

开源中国博客 2013-05-13 11:08 Mocos

goroutine背后的系统知识[转]

Go语言从诞生到普及已经三年了,先行者大都是Web开发的背景,也有了一些普及型的书籍,可系统开发背景的人在学习这些书籍的时候,总有语焉不详的感觉,网上也有若干流传甚广的文章,可其中或多或少总有些与事实不符的技术描述。希望这篇文章能为比较缺少系统编程背景的Web开发人员介绍一下goroutine背后的系统知识。 操作系统与运行库 并发与并行 (Concurrency and Parallelism) 线程的调度 并发编程框架 goroutine 1. 操作系统与运行库...阅读全文

开源中国博客 2013-04-04 10:36 chai2010

go语言基础教程2

array 数组声明--var arr [10]int,array由[n]<type>定义。n表示数组大小,type表示数组类型 声明且初始化--arr := [3]int{1,2,3}或者不写大小var arr := [...]int{1,2,3}或者var arr =  [3]int{1,2,3},如果不写大小可以用三个点来表示,go会自动识别,var arr[3]int默认是初始化为0。 ps:记住:=和=之间的区别,如果是:=不需要var,如果是=需要var 二维数组初始化a := [2...阅读全文

博客园 2013-05-07 16:42 GODYCA

go语言html/template解析问题

最近使用go语言html/template包进行一些静态化工作,发现template对于小于号(左尖括号<)不能正确处理,反复研究,没有弄清楚怎么回事,后来变通了一下,先对模板进行EscapeString编码,格式化以后,再进行UnescapeString编码,问题得到解决;但还是没弄清楚template为什么对单独的小于号(左尖括号<)无法正确格式化,但发现如果左尖括号的右边有一个或多个右尖括号(>),则能正确解析格式化,而template源码包读起来很费解,最终没有弄明白,希望知道的同学能告...阅读全文

Ubuntu 下 nginx , php , mysql 和 golang 的简单安装

我是搞php出身,自然安装lnmp是常规技能。以前的手段还是lnmp安装包,比如军哥的lnmp1.0。随着php和mysql的更新,大多数一键安装都开始版本老化,更新困难的问题。因此,重新研究了一下Ubuntu下lnmp的安装,发现现在简单的多,记录一下。 另外最近在学习golang,Ubuntu下安装自然也是必须的过程。不过golang的安装也有一些奥妙。当然,不是源码安装的啦。 Nginx Stable/Development Ubuntu下的包管理器是apt-get或者...阅读全文

开源中国博客 2014-02-19 23:26 傅小黑

golang连接orcale

使用glang有一段时间了,最开始其实并不太喜欢他的语法,但是后来熟悉之后发现用起来还挺爽的。之前数据库一直使用mysql,连接起来没有什么问题,github上有很多完善的驱动,所以以为连接其他数据库也应该没什么问题,近日听说其连接orcale比较麻烦,所以就试了试。     之所以连接orcale比较麻烦是因为orcale并没有提供golang的驱动,所以并不能像java那样引入个驱动包就能连接,也不能像mysql之类的开源数据库可以自己实现驱动。不过正所谓天无绝人之路,既然纯go实现...阅读全文

开源中国博客 2014-06-16 22:54 oO脾气不坏Oo

golang的fmt包

package fmt import "fmt" mt包实现了类似C语言printf和scanf的格式化I/O。格式化verb('verb')源自C语言但更简单。 Printing verb: 通用: %v 值的默认格式表示。当输出结构体时,扩展标志(%+v)会添加字段名 %#v 值的Go语法表示 %T 值的类型的Go语法表示 %% 百分号 布尔值: %t 单词true或false 整数: %b 表示为二进制 %c 该值对应的unicode码值...阅读全文

开源中国博客 2014-08-21 10:20 刘地

go语言初记

快速了解 http://go-tour-zh.appspot.com/welcome/1 (可以需要爬墙) 下面记录下了解go的过程,特别记录下与你脑子里原有“观念”不同的地方: 1.  声名 初始化,类型在后面,不一样 var a, b int var a,b =1,2var c, python, java = true, false, "no!" a,b:=func fname(string,string) //非声明,必须在func使用 短声明变量 在函数中,`:=` 简洁赋值...阅读全文

博客园 2014-07-15 16:45 haanico

beego介绍

beego是一个类似tornado的Go应用框架,采用了RESTFul的方式来实现应用框架,是一个超轻量级的框架,主要有如下的特点: 支持MVC的方式,用户只需要关注逻辑,实现对应method的方法即可 支持websocket,通过自定义Handler实现集成sockjs等方式实现 支持自定义路由,支持各种方式的路由,正则、语意均支持,类似sinatra session集成,支持memory、file、redis、mysql等存储 表单处理自动化解析,...阅读全文

开源中国博客 2013-04-20 11:24 astaxie

golang中省略返回值造成内存泄漏

我已经两次因为不恰当的省略go中的函数返回值,一次造成MySql的too many connection错误,一次造成严重的内存泄漏。所以在这里大家分享一下这个问题和解决办法,也提醒自己以后不要再犯类似的错了。 众所周知,go中的函数可以返回多个值。但很多时候我们并不需要所有的值,而且go中定义了一个变量必须使用才可以,不然会报错。所以对于不需要的返回值,一般的操作方法就是省略: for _,value := range slice{ //.... } 一个典型就是上面的range...阅读全文

开源中国博客 2014-07-22 17:55 WAKnow

go语言中的数组切片:特立独行的可变数组

初看go语言中的slice,觉得是可变数组的一种很不错的实现,直接在语言语法的层面支持,操作方面比起java中的ArrayList方便了许多。但是在使用了一段时间后,觉得这东西埋的坑不少,使用方式上和arrayList也有很大的不同,在使用时要格外注意。 slice的数据结构 首先说一下slice的数据结构,源码可以在google code上找到,http://code.google.com/p/go/source/browse/src/pkg/runtime/runtime.h struct...阅读全文

博客园 2013-08-18 18:48 mahang

golang的net/http包

package http import "net/http" http包提供了HTTP客户端和服务端的实现。 Get、Head、Post和PostForm函数发出HTTP/ HTTPS请求。 resp, err := http.Get("http://example.com/") ... resp, err := http.Post("http://example.com/upload", "image/jpeg", &buf) ... resp, err := http....阅读全文

开源中国博客 2014-08-21 10:14 刘地

go语言中的反射的使用

今天尝试了一下使用go语言中的反射来将struct类型转换成xml,结果相当纠结。首先去看了一下go的reflect包的实现,根据go的规则,首先应该去看一个NewXXX的方法,结果发现了一个叫NewValue的方法,通过这个方法我们能够得到一个Value接口。另外我们还应该注意到,go的反映实现中将Type和Value分开了,于是还有另外一个接口Type. type Value interface { // Type returns the value's type. Type...阅读全文

ITEYE博客 2010-12-24 19:32 javatgo

使用go语言一个月的认识

年底开始用go重写原来用d的一个小项目,经一个多月使用对go有了初步认识。贴一些go语言特性对比给想入门的朋友做参考,其中涉及自己常用的c++、erlang和d。因为对这些语言掌握程度都只能算入门水平,说错的地方还请大家指正。     +   优势     -   不足     +/- 争议     +   属于编译型强类型语言,这点不必多说了     +   支持new+垃圾收集,不提供直接手动内存管理(但可以通过malloc外部库实现)。d支持手动管理(delete)及gc操作,可管理c分配...阅读全文

ITEYE博客 2012-04-19 10:48 justjavac