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

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

开源中国博客 2014-04-02 11:32 sz_Promi

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

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

博客园 2013-03-30 17:45 getong

64位win7下go语言的初步学习记录001:开发环境搭建

初步学习go语言,在win7 64位下,安装go1.3正式版,使用LiteIDE搭建最简洁清晰的开发环境,以利于初步的学习。 1.下载必备软件工具: Google下载或许对你而言“不方便”,那么请在以下地址下载,或者其他任何能够下载的地址中下载以下两个软件工具,这是必须的。 下载   windows 64位 下使用的  go1.3正式版  ; 下载  轻量级开源跨平台的 LIteIDE X21  ; 2.安装go1.3: 强烈建议一路点击下一步就可以了,安装路径就是默认为最佳, C:\Go ...阅读全文

CSDN博客 2014-08-10 12:10 u011925943

go语言 接口的思考(一)

在《学习Go语言》中,有一个例子,说得是怎样做一个通用的接口来实现给数字,字符串来排序。 第一种思路: 1. 定义一个函数,可以接收任意类型做为入参,然后 在函数内,根据入参来判断是那一个类型 func sort(i []interface{}) { switch i.(type) { case string: // ... case int // ... 来实现 } } 在调用时,sort([]int{1, 4, 5}) 我们传入了一个数组, 很不幸,Go不能(隐式)转换为slice。...阅读全文

CSDN博客 2013-08-09 10:25 zistxym

go语言环境

操作系统:ubuntu 64bit 依次执行(这里是在/目录下执行的) 1、sudo apt-get install bison ed gawk gcc libc6-dev make 2、apt-get install python-setuptools python-dev build-essential 3、sudo easy_install mercurial 4、hg clone -r release https://go.googlecode.com/hg/ go 5、cd go/s...阅读全文

ITEYE博客 2011-01-23 18:08 canofy

Go lang 的GC问题及解决

我的应用是要顺序跑每一天的数据,每天的数据都很大,每天的数据单独处理,没有全局变量,循环执行。 结果使用top查看时发现,内存使用直线上升,每次循环使用的内存根本没有释放,结果就是:内存耗尽。 用惯了高级语言的我,好久都没遇到这么底层的问题。 我的直接疑问是:难道Go的GC没有发现那些应该回收的内存吗? 结果Google了一下验证了我的判断:在Linux 32位机上的GC机制确实有问题,我耐性的看完了整个回帖。 有人扬言不解决这个问题就不使用Go,推荐的解决方案大部分是迁移应用至64位系统,还有...阅读全文

新浪博客 2013-03-29 16:18:49 孤独古怪的孩子

go升级1.3bug,查询源码

go升级用最新的go包,记得要在自己的程序库中先makeclean(删除原先的.ma文件),再make下(Makefile文件中有 go install ../...) 采用压缩包安装的go,用编辑器可以很快定位源码 以一个例子来说明 gifConf, err1 := gif.DecodeAll(imgSource) //这里的DecodeAll调用的image/gif库里的 ok进入该源码 func DecodeAll(r io.Reader) (*GIF, error) { var d d...阅读全文

CSDN博客 2014-09-22 16:40 u010026901

使用golang开发https服务

用Golang来写一个http服务极其简单,写一个https服务,也一样的极其简单。 生成key.pem和cert.pem: openssl req -new -x509 -key key.pem -out cert.pem -days 1095 package main import ( "fmt" // "io/ioutil" "net/http" "log" ) func main() { http.HandleFunc( "/", makeHandler ) err := http.Li...阅读全文

新浪博客 2013-01-14 15:00:53 githen-小郭子

go的赋值与声明语法糖

:= 只有在左侧有未定义变量时才能使用(有定义的变量也可以) := 只进行语义上的检查,循环内也可以使用,第一次之后的效果和=相同 := 和 = 都要求左右的值和变量一一对应,不会截断 特殊情况,map、chan、类型推定可以返回一个值,也可以是两个值 当map中该键不存在时,总是返回零值和false,否则后者返回true 当chan关闭以后,总是返回零值和false,否则后者返回true package main type INT int func (r *IN...阅读全文

开源中国博客 2013-07-29 21:35 刘地

【Go web开发之revel+mgo】第4章 实现评论功能

sorry,各位在开始这一章之前请各位先到,第5章把整个项目的css  copy出来,这一章忘了加,本来想在后面加的,但是发现页面的内容太多了 1.设计评论页面 上一章我们做了简单的写blog和显示功能,这里不得不说一下,首先,我们的blog里面不能加图片链接这样的东西,不支持markdown语法。博主比较懒,尝试找了几个插件发现不满意之后就不想尝试了(其实能找到github编写wiki的编辑器才是我想要的,有谁知道的告诉我哦),大家可以自己尝试去找一些自己喜欢的编辑器(虽然revel中文社...阅读全文

CSDN博客 2014-04-25 16:26 jov123

go学习笔记

go学习笔记初始go异常处理的defer是个不错的特性,虽然说有人反驳说其中的java代码不够合理,但是这种方式确实对c是一个巨大的进步。工程编译根据方便,没有Makefile文件,只要一个go命令即可。但是必须要设置GOPATH路径,这一步能省掉就更好了。顺序编程变量:支持:int,字符串,数组,数组切片,结构体,指针,字典,函数指针。iota:在每次const是初始化为0,每出现一次会自增1。全局变量不支持类型推导——:=go 的取反是^而不是~float64相当于c中的double。浮点数...阅读全文

CSDN博客 2014-03-15 20:50 chgaowei

go语言工程约定,分包和编译

go-lang已经发布了go1,前段时间看了一下go语言的教程,就喜欢上了这门语言,但使用多个文件编译是碰到一些麻烦,引用出错编译通不过,google之找到了这篇教程https://golang.org/doc/code.html,我按自己的理解记录一下,英文好的童鞋还是看原文吧! go语言可以用makefile,也可以按他的约定来直接编译。约定其实比较简单,go语言是这么来配置他的工程的 prjDir # 工程根目录 bin/ hello ...阅读全文

开源中国博客 2013-01-21 16:30 lavafree

golang里channel的实现原理

channel是消息传递的机制,用于多线程环境下lock free synchronization. 它同时具备2个特性: 1. 消息传递 2. 同步 golang里的channel的性能,可以参考前一篇:http://blog.sina.com.cn/s/blog_630c58cb01016xur.html 此外,自带的runtime package里已经提供了benchmark代码,可以运行下面的命令查看其性能: go test -v -test.bench=".*" runtime 在我的...阅读全文

新浪博客 2012-11-15 23:41:08 funkygao

Go语言的国际化支持(基于gettext-go)

本文在 Golang中国博客 的地址: http://blog.go-china.org/07-gettext hello, world! 假设有以下的程序, 输出: “Hello, world!“. package main import ( "fmt" ) func main() { fmt.Println("Hello, world!") } 现在要让改程序支持不同语言的用户, 然后以本地语言输出相同意思的信息. 这就是很多程序面临的国际化问题. Go语言...阅读全文

开源中国博客 2014-01-07 07:54 chai2010

go语言总结

1.项目需要,学习GO 2.GO是谷歌出品,很多牛B很多吹捧,所以得学 3.从搭建环境开始: 因为习惯了win7+eclipse的开发方式,所以go的开发环境也用这样的组合 具体 http://blog.csdn.net/hengyunabc/article/details/7371446 里面说的很明白。 (http://bigasp.com/archives/594、http://rongmayisheng.com/post/windows下用eclipsegoclipse插件gdb搭建go...阅读全文

ITEYE博客 2014-04-18 09:17 sugongp

我第1个可用的golang小程序

为什么要写这个程序 寻找时间同步Api 编写同步程序 封装成windows service   为什么要写这个程序         一直在关注golang, 从2011年4月配置环境写了个hello world!(http://weibo.com/1409046677/wr4n3vdYFV), 后来没再动手写golang代码了, 只是关注golang方面的信息/资讯。去年到今年稍认真的看了一些golang的基础语法,然后前几天家里的台式电脑又开机用了一下,可能是bios电池没电的原因吧, 总...阅读全文

博客园 2014-04-24 13:08 net205