go语言的设计的一点粗浅看法

Go是Google开发的一种编译型,并发型,并具有垃圾回收功能的编程语言。罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊于2007年9月开始设计Go语言,[1],稍后Ian Lance Taylor, Russ Cox加入专案中。     Go语言这个出自大公司Google的大牛的作品, 为什么没有象出自Microsoft的anders hejlsberg的C#这么吸引人并流行起来呢?其实Go语言的设计者也是有名的大牛,但为什么三个臭皮匠,竟然抵...阅读全文

博客园 2013-05-09 20:13 DSharp

用http实现文件共享(python和go语言示例)

平时工作中少不了文件共享,所以了解文件共享的方法很有必要。 文件共享有很多方法,大致分为以下几类: 1、系统共享(windows共享或samba等): windows下我们可以借助windows共享完成简单的文件共享,linux下也可以用samba之类的软件轻松实现。 2、ftp共享: 可以借助常见的ftp软件实现。 3、http共享: 可以借助常见的web服务器(比如IIS、Apache等)实现。 今天我要介绍的是http文件共享。 首先以IIS为例介绍下用常用的web服务器实现文件共享的方法...阅读全文

博客园 2012-02-11 16:23 MikeZhang

google的GO语言环境安装

首先打开install Go页面:http://golang.org/doc/install.html 按着向导一步一步来安装。 本人环境:ubuntu9.10,acer Aspire4710 32位机器 下文"#"表示说明文字,其余为在终端中的命令或者文件操作 1.Environment variables(环境变量设置) (1)cd (2)mkdir go (3)mkdir bin (4)vi .bashrc (5)#在文件最后添加如下内容(根据机器的不同而使用不同的GOOS和GOARCH...阅读全文

ITEYE博客 2009-11-12 23:08 haiyupeter

windows下用notepad++配置go语言开发环境

我在前一篇文章(http://www.cnblogs.com/MikeZhang/archive/2012/02/09/windowsGo.html)中介绍了怎么在windows下安装go语言,今天我要介绍的是怎么用notepad++配置go语言开发环境。 一、准备工作:1、安装go语言;2、将go/bin目录加入环境变量;3、安装notepad++; 二、配置notepad++支持go语言语法高亮1、下载notepad++的go语言支持包(http://notepad-plus.sourcef...阅读全文

博客园 2012-02-10 11:26 MikeZhang

【翻译】go语言中的map实战

业余时间翻译,水平很差,如有瑕疵,纯属无能。   原文链接 http://blog.golang.org/go-maps-in-action   go语言中的map实战   1. 简介 哈希表是计算机科学中最重要的数据结构之一。许多哈希表的实现有着千差万别的特性,但是总体上他们都提供了快速查询,添加和删除功能。go语言提供了内置数据类型map。   2. 声明和初始化 map的声明格式如下: map[KeyType] ValueType KeyType类型必须是可以比较的,而ValueTyp...阅读全文

博客园 2014-02-12 18:39 igloo1986

go try-catch

package main   2    3 import(   4         "fmt"   5    6 )   7    8    9 func catch(){  10   11         if err := recover(); err != nil {  12                  fmt.Println(err)   13         }         14   15 }  16   17 func checkErr(er...阅读全文

开源中国博客 2014-02-18 12:21 昏鸦

论go语言中goroutine的使用

go中的goroutine是go语言在语言级别支持并发的一种特性。初接触go的时候对go的goroutine的欢喜至极,实现并发简便到简直bt的地步。但是在项目过程中,越来越发现goroutine是一个很容易被大家滥用的东西。goroutine是一把双面刃。这里列举一下goroutine使用的几宗罪: 1 goroutine的指针传递是不安全的 fun main() { request := request.NewRequest() //这里的NewRequest()是传递回一个type R...阅读全文

博客园 2014-10-04 19:26:36 yjf512

go语言编写Web程序

1. 简介 这个例子涉及到的技术: 创建一个数据类型,含有load和save函数 基于http包创建web程序 基于template包的html模板技术 使用regexp包验证用户输入 使用闭包 假设读者有以下知识: 基本的编程经验 web程序的基础技术(HTTP, HTML) UNIX 命令行 2. 开始 首先,要有一个Linux, OS X, or FreeBSD系统,可以运行go程序。如果没有的话,可以安装一个虚拟机(如VirtualBox)或者 Virtual Private S...阅读全文

博客园 2013-03-15 22:08 yfl8910

go调用exe

//调用exe func callEXE1() { arg := []string{} cmd := exec.Command("test", arg...) //会向 cmd.Stdout和cmd.Stderr写入信息,其实cmd.Stdout==cmd.Stderr,具体可见源码 output, err := cmd.CombinedOutput() if err != nil { fmt.Println("Error:", err) return } fmt.Pr...阅读全文

开源中国博客 2014-08-06 14:29 陈好

go生成csv

package main import ( "encoding/csv" "os" ) func main() { f, err := os.Create("test.csv")//创建文件 if err != nil { panic(err) } defer f.Close() f.WriteString("\xEF\xBB\xBF") // 写入UTF-8 BOM w := csv.NewWriter(f)//创建一个新的写入文件流 data := [][]st...阅读全文

开源中国博客 2014-08-23 13:49 别人说我名字很长

go interface理解

如果一只鸟长得像鸭子,走起路来像鸭子,叫起来也像鸭子,那么就把这只鸟叫做鸭子; golang中的interface就是上面这个意思,如果你定义了一个struct,它里面的方法和属性都和interface中的一样,那么可以说,这个struct实现这个interface,上代码 package main import ( "fmt" ) type s struct { //定义一个s类型,有一个属性i是int的 i int } func (this *s) Get() int ...阅读全文

开源中国博客 2014-08-23 14:32 别人说我名字很长

SublimeText3搭建go语言开发环境(windows)

SublimeText3搭建go语言开发环境(windows) 下载并解压:     Sublime Text Build 3021.zip注册:     尽量不要去破解    安装Package Control     命令行进入SublimeText3的安装目录运行以下命令     cd Data/Packages/     git clone https://github.com/wbond/sublime_package_control.git "Package Control"    ...阅读全文

博客园 2014-02-06 14:39 china1

komodo编辑器go语言支持文件

已经有大神写出了komodo ide/edit的go语言支持插件https://github.com/trentm/komodo-go,但是作者并没有将该文件上传到komodo官方插件网站上,并且源码也没有编译,这里给个编译后的版本,方便新手使用。 go_language.xpi 提示:   1,安装gocode 智能提示   2, 安装godef 跳到定义 作者github上有详细的gocode,godef安装指导。 经过测试,在我机器上不能进行语法检查。阅读全文

博客园 2013-12-21 23:45 mtima

go的slice学习

切片是对某个容器不同区间范围的引用。 a := []int{0,0,0,0,0} 这行代码实际上包含了两个逻辑步骤: 1.创建了一个容量为5的容器 2.a引用容器[0:5]的区间,a[1]=1即设置变容器第二个位置的值为1。 b := a[0:2] 这行代码并没有创建新的容器,只是在原有容器上增加了一个新的引用b,b可以修改容器的[0:2]区间内的值,由于a也可以修改这个区间的值,所以对b做出赋值操作也会反应到a上。阅读全文

开源中国博客 2014-09-12 17:23 吾爱

小心#Golang#官方文档中没有详细说明的陷阱

近日在高负载时使用 Golang 的 sql driver 时碰到泄漏问题,最后终于发现 database/sql 的文档和 Examples 都没有很好的说明下面2个关键点: 一、 每个 Golang 进程只需要 sql.Open() 一次 最初,想当然的做法是每次有sql请求都先 sql.Open() 。 这实际上是不对的。 database/sql 自己会维护连接池,每次 sql.Open() 会新建一套连接池。虽然不会报错,但是会导致资源浪费。而且我发现在系统资源紧张时会导致锁死的 go...阅读全文

新浪博客 (2014-03-10 16:15:18) 沈晟

我的go语言上机测试代码

汇总我的go语言上机测试代码,测试环境win7、go 1.1 beta(32位), GOROOT = E:\opensource\go\go 测试代码下载地址 hellogo.zip,包含下面的代码: client.go          -- net客户端gargs.go         -- 取命令行字符串gchannel.go     -- 测试channelgcommand.go  -- 测试os包的exec.Commandgdefer.go        -- 测试defergflag...阅读全文

博客园 2013-04-15 00:17 youyou

go语言 windows 32位编译环境搭建

网上讲go语言编译环境搭建的文章不少了,搭建环境本身也相对简单, 本文主要是提供一个可下载的地址,因为刚开始我找了好几个地址都没能下载到想要的版本, 这个地址是刚(2013.04.08晚)试过能访问的:http://code.google.com/p/go/downloads/list Downloads页面有下面这些go语言开发包,这里我们选择下载go1.0.3.windows-386.zip: go1.0.3.darwin-386-signed.pkg go1.0.3.darwin-...阅读全文

博客园 2013-04-08 23:35 youyou