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

理解Golang包导入

自:http://tonybai.com/2015/03/09/understanding-import-packages/ Golang使用包(package)这种语法元素来组织源码,所有语法可见性均定义在package这个级别,与Java 、python等语言相比,这算不上什么创新,但与C传统的include相比,则是显得“先进”了许多。 Golang中包的定义和使用看起来十分简单: 通过package关键字定义包: package xxx 使用import关键字,导入要使用的标准库包或第三方依赖包。 import "a/b/c" import "fmt" c.Func1() fmt.Println("Hello, World") 很多Golang初学者看到上面代码,都会想当然的将imp...阅读全文

博文 2015-06-03 11:53 sevenyuan

Golang初学者学习资料大汇总

网站教程 GO语言编程 and GO语言开发2048 from 实验楼 Go语言后台应用开发 form 优才网 Go语言第一课 form 慕课网 入门书籍 《Go 入门指南》(《The Way to Go》中文版) 《Go 编程基础》 《学习 Go 语言》 《GO 标准库》: Polaris出品,一本有价值的入门书籍。 《Go Web 编程》 《Go并发编程实战》 and 《Go命令教程》由@特价萝卜 出品。 视频资料 《Go编程基础》视频教程:由@Unknown 出品,与书籍配套。 《Go Web基础》视频教程 《Go名库讲解》视频教程 社区交流 StudyGolang Golang中国 Go友团 其他补充 Go学习笔记 by 雨痕大神 Golang在线开发环境 由Go语言中文网和实验楼共...阅读全文

博文 2015-05-04 13:49 严爬爬

Go中使用动态库C/C++库

最近需要做一些在go中使用动态C++库的工作,经常碰到找不到动态库路径这种情况,所以就花点时间,专门做一下实验来了解Go。 一、示例代码目录结构(假设代码根目录为/home/gdc/cgotest): ----|bin: ----|pkg ----|src --------|main ------------|main.go --------|oidb ------------|hello ----------------|hello.go: ----------------|api.h ------------|lib ----------------|libapi.so 二、代码 api.h文件内容: #ifndef __API_H__ #define __API_H__ void he...阅读全文

博文 2014-07-18 17:23 xiaogugood

Go语言黑魔法

今天我要教大家一些无用技能,也可以叫它奇技淫巧或者黑魔法。用得好可以提升性能,用得不好就会招来恶魔,嘿嘿。黑魔法导论为了让大家在学习了基础黑魔法之后能有所悟,在必要的时候能创造出本文传授之外的属于自己的魔法,这里需要先给大家打好基础。学习Go语言黑魔法之前,需要先看清Go世界的本质,你才能获得像Neo一样的能力。在Go语言中,Slice本质是什么呢?是一个reflect.SliceHeader结构体和这个结构体中Data字段所指向的内存。String本质是什么呢?是一个reflect.StringHeader结构体和这个结构体所指向的内存。在Go语言中,指针的本质是什么呢?是unsafe.Pointer和uintptr。当你清楚了它们的本质之后,你就可以随意的玩弄它们,嘿嘿嘿。第一式 - 获...阅读全文

博文 2015-04-23 18:34 达达

golang 命令行处理

1.命令行参数(命令行参数是指定程序运行参数的一个常见方式。例如,go run hello.go,程序 go 使用了 run 和 hello.go 两个参数。) package main import "os" import "fmt" func main() { //os.Args 提供原始命令行参数访问功能。注意,切片中的第一个参数是该程序的路径,并且 os.Args[1:]保存所有程序的的参数。 argsWithProg := os.Args argsWithoutProg := os.Args[1:] //你可以使用标准的索引位置方式取得单个参数的值。 arg := os.Args[3] fmt.Println(argsWithProg) fmt.Println(argsWithou...阅读全文

博文 2015-04-20 12:03 benlightning

mapreduce.go源码浅析 MIT 6.824 Spring

这学期选了《分布式系统导论》,实验部分和MIT 6.824 Spring 2015 一样,请戳, 再加上对我来说很困难的课前reading以及课后作业,压力巨大:( 实验共分5部分,根据助教往年评分来看,难度呈线性递增。 由于MIT提供的代码是由go语言所写,所以在着手实验前,你需要了解一下go,我用的是 AN INTRODUCTION TO PROGRAMMING IN GO 链接, 很薄的小册子, 可以迅速了解go语言的基本语法。 6.824 Lab 1: MapReduce 实验要求, Part 1 需要完成一个完整Word Count程序中的map函数和reduce函数, 第一步当然是读提供的代码, 把mapreduce.go中RunSingle()流程读懂,知道map函数和redu...阅读全文

博文 2015-03-30 11:57 b4s1cv8vc

Go 1.5中值得关注的几个变化

在GopherCon2015开幕之 际,Google Go Team终于放出了Go 1.5Beta1版本的安装包。在go 1.5Beta1的发布说明中,Go Team也诚恳地承认Go 1.5将打破之前6个月一个版本的发布周期,这是因为Go 1.5变动太大,需要更多时间来准备这次发布(fix bug, Write doc)。关于Go 1.5的变化,之前Go Team staff在各种golang技术会议的slide 中暴露不少,包括: - 编译器和运行时由C改为Go(及少量汇编语言)重写,实现了Go的self Bootstrap(自举) - Garbage Collector优化,大幅降低GC延迟(Stop The World),实现Gc在单独的goroutine中与其他user gorout...阅读全文

博文 2015-08-22 11:44 wkyb608

godep支持Go 1.5 vendor

godep支持Go 1.5 vendor 八 05 bigwhite技术志 gb, Go, Go1.5, GO15VENDOREXPERIMENT, godep, Godeps, Golang, GOPATH, GOROOT, import, vendor, 包 No Comments Go 1.5 vendor/实验特性出炉后,市面上的go第三方包依赖和管理工具显然都无法与之兼容,除了修改代码,别无它法。市场占有率最大的godep做出了表 率,目前其最新版本(go get github.com/tools/godep)已经初步支持了这一实验特性,即在GO15VENDOREXPERIMENT=1时,将使用vendor 目录(而不是Godeps目录)存放copy的第三方包,并在godep go...阅读全文

golang select 退出结束goroutine

开启了多个协程 其中一个协程满足条件后终止select, 原以为其他的协程会在后台系统中继续悄悄运行 直到主进程关闭而关闭 。 做一实验发现select 监听退出 会关闭所有监听的goroutine package main import ( "fmt" "time" ) var stop bool = false func main() { ch := make(chan int, 0) ch2 := make(chan int, 0) defer func() { close(ch) close(ch2) }() go func() { ch <- 1 }() for i := 0; i <= 20; i++ { go func(ch2 chan int) { for { fmt.Pri...阅读全文

博文 2015-01-16 17:58 wangxusummer

探究golang接口

今天看了《Go 语言中的方法,接口和嵌入类型》所以想对比以前对C/C++相关知识进一步理解golang的接口、指针、参数传递。 接口 根据《Go 语言中的方法,接口和嵌入类型》的描述可以看出,接口去调用结构体的方法时需要针对接受者的不同去区分,即: 接收者是指针*T时,接口实例必须是指针 接收者是值 T时,接口实力可以是指针也可以是值 接口的定义和类型转换与接收者的定义是关联的 文章中的示例是通过接口作为函数参数的方式展现的,这里我直接使用变量来进行实验: package main import "fmt" type Type struct { name string } type PType struct { name string } type Inter iInterface { po...阅读全文

博文 2015-03-13 15:43 cnsword

Google:C++、Java、Scala、Go四种语言性能对比

谷歌发布了一个研究报告,仔细比较了C + +、Java、Scala和谷歌自己拥有的Go编程语言的性能。 根据谷歌的测试报告(PDF格式),C + +是四种语言中运行速度最快的。 但是该文件同时也指出,优化代码相对困难,这需要相当的努力、熟练的水准,不是平均水平的程序员所能达到。 Go旨在消除至少这个限制一些,但它仍然是年轻的(它首次亮相大约一年,不过前半年只是一种“实验性”语言年),并在大多数谷歌测试中表现出,它落后于C + +以及Java和Scala。 “Go提供了有趣的语言特性:这是一个简洁和标准化的符号,”阅读了报告, GOOGLE创始人罗伯特亨特写下:“[但是]语言编译器仍然是不成熟的:无论是性能和二进制大小方面都反应了该问题。” 这就是说,Go的编译比其他三种语言都要快。 Java...阅读全文

博文 2011-06-12 00:05 jianyi7659

Go语言 整数和浮点数性能对比

我们团队使用Go来开发游戏服务端,游戏服务端的战斗逻辑避免不了各种计算,C的编程经验告诉我们整数运算效率比浮点运算高,但是在Go语言中,这两种数据类型的运算效率到底差多少呢?是否有必要把浮点数转换成整数的万分数或者千分数进行运算呢?下面通过实验来对比。 实验代码(github): package labs05 import "testing" func Benchmark_IntAdd(b *testing.B) { var a = 0 for i := 0; i < b.N; i++ { a += 1 } } func Benchmark_Int8Add(b *testing.B) { var a int8 = 0 for i := 0; i < b.N; i++ { a += 1 } }...阅读全文

博文 2014-04-20 21:09 abv123456789

Go1.5正式版程序性能分析小积累,实验环境windows64

方法一: 使用:set GODEBUG=gctrace=1 / GODEBUG=gctrace=2 直接运行可执行文件:server.exe 格式:gc # @#s #%: #+...+# ms clock, #+...+# ms cpu, #->#-># MB, # MB goal, # P GC # 表示第几次GC @#s 表示程序开始多长时间执行的GC #% 表示程序开始GC时间占用的百分比(percentage of time spent in GC since program start) #+...+# 表示GC执行时CPU阻塞时间和 #->#-># MB 表示GC开始堆大小,结束堆大小,在活跃堆大小 # MB goal 表示目标对大小 # P 表示程序运行时CPU核数 示例 :...阅读全文

博文 2015-08-22 22:23 fyxichen

Golang初学者的资源整理

##网站教程: [GO语言编程](https://www.shiyanlou.com/courses/11) and [GO语言开发2048](https://www.shiyanlou.com/courses/42) from [实验楼](https://www.shiyanlou.com) [Go语言后台应用开发](http://www.ucai.cn/openclass/136) form [优才网](http://www.ucai.cn/) [Go语言第一课](http://www.imooc.com/learn/345) form [慕课网](http://www.imooc.com/) ##入门书籍 [《Go 入门指南》](https://gith...阅读全文

GO语言零基础入门资料整理

GO语言跟它名字一样是门比较装逼的语言,鲜有菜鸟初学者教程,所以没有语言基础的话,理解起来会有点困难。闲来没事整理了一个GO零基础入门资料。 安装与简介 因为国内老被墙,被墙之后请在网上直接下载,下载链接 开发环境编辑器 1.Sublime,支持多标签,自动排版,高亮,简单的填补,简单的SHELL直接运行等。 《Ubuntu下使用Sublime Text 2搭建Go开发环境》 《Sublime Text 2搭建Go开发环境(Windows)》 2.vim + gocode 《Go的Vim的高亮和自动补齐》 3.LiteIDE:只用于GO环境开发的编辑器 4.免费的golang在线开发环境:由实验楼与StudyGolang合作提供的在线实验室,可直接通过浏览器访问进行Go语言的学习与编程。 一...阅读全文

博文 2015-05-04 16:56 敲代码的猴子

go语言入门

GO语言跟它名字一样是门比较装逼的语言,鲜有菜鸟初学者教程,所以没有语言基础的话,理解起来会有点困难。闲来没事整理了一个GO零基础入门资料。 安装与简介 因为国内老被墙,被墙之后请在网上直接下载,下载链接 开发环境编辑器 1.Sublime,支持多标签,自动排版,高亮,简单的填补,简单的SHELL直接运行等。 《Ubuntu下使用Sublime Text 2搭建Go开发环境》 《Sublime Text 2搭建Go开发环境(Windows)》 2.vim + gocode 《Go的Vim的高亮和自动补齐》 3.LiteIDE:只用于GO环境开发的编辑器 4.免费的golang在线开发环境:由实验楼与StudyGolang合作提供的在线实验室,可直接通过浏览器访问进行Go语言的学习与编程。 一...阅读全文

博文 2015-04-17 09:20 u013350878

“GO语言中文网实验室”上线,提供Golang在线开发环境。

近日,GO语言中文网与“实验楼”整合双方资源,共同建立了“GO语言中文网实验室”,让用户能够以一种更便捷、更高效、更灵活的方式进行GO语言的开发学习。 实验楼是一家免费的IT在线实训平台,为IT爱好者提供了编程、运维、测试、云计算、大数据、数据库等全面的IT技术动手实践环境。 本次实验楼免费为GO语言中文网提供了Golang在线开发环境,用户在阅读文章时,可以点击文章右侧的Golang在线开发环境,登录实验楼后即可直接进入一个完整的Golang在线开发环境,用户可以在该环境中体验文章中涉及的技术,通过动手实践的方式学习技术文章的真正精髓。 ![](http://studygolang.qiniudn.com/150317/3177ab001d2c5b98d4...阅读全文

go install 的工作方式

go install 是Go语言提供的非常方便的编译工具。但是最近在项目使用过程中遇到一些问题,在这里记录一下。 问题 通常情况下,修改了代码之后使用go install编译,运行,都能得到正确的结果。 但是有时候发现,修改了源代码,却没有被重新编译,于是导致许多诡异的问题。 为了弄清楚这个问题,下面用一个简单的例子来做个实验。也顺带把go install的工作方式简单介绍一遍。 简单的代码 现在有一个名叫hello的项目,目录在/tmp/gomain/src/hello/hello.go package main import "github.com/my/human" func main() { human.Say("hello!") }hello项目引用了一个human的第三方包,这个...阅读全文

博文 2014-08-13 11:18 tiaotiaoyly

Go语言阅读小笔记,来自知呼达达关于unsafe.Pointer的分享.

第一式 - 获得Slice和String的内存数据 func stringPointer(s string) unsafe.Pointer { p := (*reflect.StringHeader)(unsafe.Pointer(&s)) return unsafe.Pointer(p.Data) } func bytePointer(b []byte) unsafe.Pointer { p := (*reflect.SliceHeader)(unsafe.Pointer(&b)) return unsafe.Pointer(p.Data) } 第二式 - 把[]byte转成string package test import "testing" import "unsafe" func ...阅读全文

博文 2015-08-14 13:27 fyxichen

Go学习笔记(3)字符串

Go 语言中的字符串以及常用的两个字符串处理包。 二. 字符串 Go语言中的字符串是 UTF-8 字符的一个序列(当字符为 ASCII 码时则占用 1 个字节,其它字符根据需要占用 2-4 个字节)。UTF-8 是被广泛使用的编码格式,是文本文件的标准编码,其它包括 XML 和 JSON 在内,也都使用该编码。由于该编码对占用字节长度的不定性,Go 中的字符串也可能根据需要占用 1 至 4 个字节,这与其它语言如 C++、Java 或者 Python 不同。Go 这样做的好处是不仅减少了内存和硬盘空间占用,同时也不用像其它语言那样需要对使用 UTF-8 字符集的文本进行编码和解码。 Go语言中字符串的可以使用双引号( " )或者反引号( ` )来创建。双引号用来创建可解析的字符串字面量,所谓...阅读全文

博文 2016-01-16 11:52 xdjyw

理解Golang包导入

理解Golang包导入 三 09 bigwhite技术志 6g, 6l, fmt, Go, Golang, GOPATH, GOROOT, import, Java, nsq, Package, Python, 包, 标准库, 编译器, 链接器 1 Comment Golang使用包(package)这种语法元素来组织源码,所有语法可见性均定义在package这个级别,与Java 、python等语言相比,这算不上什么创新,但与C传统的include相比,则是显得“先进”了许多。 Golang中包的定义和使用看起来十分简单: 通过package关键字定义包: package xxx 使用import关键字,导入要使用的标准库包或第三方依赖包。 import "a/b/c" import "f...阅读全文

【好书推荐】理解Linux进程 —— 示例代码使用 Go 语言实现

## 关于这本书 ## 本书受[理解Unix进程](http://www.duokan.com/book/41446)启发而作,用极简的篇幅深入学习进程知识。 理解Linux进程用Go重写了所有示例程序,通过循序渐进的方法介绍Linux进程的工作原理和一切你所需要知道的概念。 本书适合所有Linux程序员阅读。[在线阅读](http://www.linuxprocess.com/),[PDF下载](https://github.com/tobegit3hub/understand_linux_process/blob/master/understan_linux_process.pdf?raw=true)。 ## 三位好朋友 ## 阅读前介绍三位即将与大家打交道的小...阅读全文

编程实现可靠数据传输原理Go-Back-N

有一个计算机网络的实验,需要模拟GBN的过程,即在本地条件下模拟丢包重传机制。刚看到这个实验时有些不知所措,因为不知道怎样能实现丢包,在本地编程,即使是使用不可靠数据传输UDP的DatagramSocket,由于localhost到localhost走的是回环链路,也就是从客户机的应用层--传输层--网络层 到 服务器的网络层--传输层--应用层,这个肯定无法丢包,也用实验进行验证了(比如连续发送1万个DatagramPacket,发现每一个都被收到了)。 那么问题来了,怎样才能丢包? 通过前面的叙述,可知在链路上丢包是不可能的了,那我们可以从服务器端下手,也就是说,即使服务器收到了某个数据包,也不给客户机发ACK,那么到了客户机设置的定时器后,客户机自然就认为是丢包了。所以可以给服务器设置...阅读全文

博文 2014-11-29 16:49 icodeyou

Go语言黑魔法

今天我要教大家一些无用技能,也可以叫它奇技淫巧或者黑魔法。用得好可以提升性能,用得不好就会招来恶魔,嘿嘿。 黑魔法导论 为了让大家在学习了基础黑魔法之后能有所悟,在必要的时候能创造出本文传授之外的属于自己的魔法,这里需要先给大家打好基础。 学习Go语言黑魔法之前,需要先看清Go世界的本质,你才能获得像Neo一样的能力。 在Go语言中,Slice本质是什么呢?是一个reflect.SliceHeader结构体和这个结构体中Data字段所指向的内存。String本质是什么呢?是一个reflect.StringHeader结构体和这个结构体所指向的内存。 在Go语言中,指针的本质是什么呢?是unsafe.Pointer和uintptr。 当你清楚了它们的本质之后,你就可以随意的玩弄它们,嘿嘿嘿。 ...阅读全文

博文 2015-04-28 21:00:00 mengyidan1988

Golang实现简单tcp服务器01 -- 概述

概述 Golang作为一门近些年来非常风光的开发语言, 其实用范围很广, 图形界面, web框架, 图像引擎等等.由于其语言特性简化了并发/多核的开发, 受到了很大的关注. 而使用它进行服务器开发, 也是非常高校而简洁的.废话不多说, 本项目实践的目的是使用golang开发一个简单的基于tcp协议的服务器/客户端. 预备知识 首先, 我们需要了解一下golang下的如下包与特性: goroutine goroutine是一种轻量型的线程, 作为golang语言的语言特性, 可以很简单的在golang中进行多线程的开发. 利用go关键字, 我们能把任何一个方法/函数, 放在一个新的goroutine里执行.实验01: 在**实验环境**的**主文件夹**里, 建立一个名为test.go的文本文...阅读全文

博文 2015-06-02 22:31 victoriest

HTTP(S) 路由器fabio

fabio 是一个快速、现代、zero-conf 负载均衡 HTTP(S) 路由器,用于部署 consul 管理的微服务。 fabio 由 eBay Classifieds Group 开发, 用于处理 marktplaats.nl 和 kijiji.it 的流量。Marktplaats 所有的流量都经过 fabio ,每秒有数千个请求,分发于数个 fabio 实例。但我们并没有观察到任何延迟。 特性: * Go 语言单一二进制,没有额外的依赖。 * Zero-conf * 通过后台观察器热重载路由表 * 轮转和随机分布 * Traffic Shaping (send 5% of traffic to new instances) Graphite metrics * 请求跟踪 * W...阅读全文

如何关闭数组边界检查

我想用Go来做数值计算,做了一个简单的实验,发现同样的矩阵运算,Go所用的时间是用C的2.5倍左右. 下面是我的编译命令: Go : gccgo -g -O3 *.go; C: gcc -std=c99 -g -O3 *.c 这里,gccgo 后面必须要有参数-g, 为了公平起见,在编译C代码时,我也用了这个参数.我知道Go在引用数组元素时是要进行边界检查的,怎么关闭边界检查?否则,Go是不能胜任大规模的数值运算的...阅读全文

第一个吃“螃蟹”的人——七牛云存储带你分享Go语言的乐趣

七牛云存储 七牛是一家专注于做云存储技术服务的公司,公司注册成立于2011年中旬(上海七牛信息技术有限公司),其目标是打造互联网数据存储的第一服务提供商。专注是他们的基本理念。尽管七牛还非常年轻,但七牛团队在分布式云计算和存储行业已经积累了超过7年的经验与沉淀。早前在国内大型互联网企业比如金山和盛大都有相关的技术成就,至今仍有相关结晶在投入使用。 七牛依托在云存储领域多年的技术积累,汇集了国内顶尖的技术人才,七牛联合创始人之一许式伟先生曾在2000年主持研发WPS,担任WPS Office 2005首席架构师,以及兼任前金山技术总监,2006年带领创办成立金山存储实验室,并于2009年婉拒Google加盟盛大创新院,主攻存储领域,盛大“祥云计划”(盛大云前身)的发起人。2011年,许式伟和一...阅读全文

Go 1.5 实现自举、引入并发垃圾收集器

在经历了几个Beta版本和一个rc版本之后,Go 1.5终于正式发布了。这是一个很重要的版本,实现方面有很多变化。因为这个版本仍然遵循Go 1兼容性承诺,开发团队预计,所有的Go程序应该都可以和以前一样编译和运行。二进制和源码包已提供下载。 在实现方面,最大的变化有以下几点: 编译器和运行时是完全用Go语言编写的(还有少量汇编),实现了自举。实现中不再涉及C语言,所以构建时也就不需要C编译器了。 并发的垃圾收集器,可能的情况下,垃圾收集可以和其他goroutine并发进行,可以极大降低响应时间。 默认情况下,Go程序运行时的GOMAXPROCS会被设置为可用的核数,之前默认为1。 对internal packages的支持扩展到所有repositories,不再是仅供核心包...阅读全文

golang小程序试验(一)

1. 手动实现append package main import ( "fmt" ) func Append(slice, data []byte) []byte { l := len(slice) total_len := len(slice) + len(data) if total_len >= cap(slice) { total_len = total_len * 2 newslice := make([]byte, total_len) copy(newslice, slice) slice = newslice } for i, k := range data { slice[l+i] = k } return slice } func main() { slice := [...阅读全文

博文 2013-11-22 13:54 壬癸甲乙

寻求golang工程师,Are you ready to go ?

岗位描述: ##管你是GO还是C/C++,或者是最好的PHP,「够浪就行」 **又到了加需求的季节** --- Web开发工程师和金融系统开发工程师是我们正在寻找的小伙伴之一。 **如果你具备以下技能,并且渴望在一家充满年轻活力的技术型公司快速成长,我们将会用代码感动你。** * 具有高并发系统开发经验,熟悉http、tcp协议, * 了解nginx、 apache、lighttpd或任何一款开源web服务; * 熟悉数据结构与算法,熟悉Redis、Oracle、Mysql等数据库; * 了解Go语言,擅长C/C++加分。金融行业开发经验,或相关系统。 **这里特别欢迎乐于在技术社区分享知识的极客青年,具备文艺特长也将会是不错的加分项。** {我们不生产代码} {这里...阅读全文

作为广州地区较早研究Golang的技术团队,现在才到这里寻人才,确实是有点太低调了

##管你是JAVA还是C++,或者是最好的PHP,「够浪就行」 >估值超过1亿美元,却还没有融资,这不是神话。当我们知道VC对我们的估值时,大多数的伙伴,还在吭哧吭哧敲代码(´・ω・`) **春天来了,又到了加需求的季节** --- Web开发工程师是我们正在寻找的小伙伴之一。 鉴于舜飞平台的业务发展的确实有点快,再不来人就又要开始加班了 所以经组织上讨论决定,需要尽快撸到四位对高并发web系统有一定经验的web后端工程师,给舜飞的DSP项目实现广告投放系统的新需求, 并且参与广告投放系统的相关算法和模型的开发,实时处理海量请求,跟算法组织一起打造高性能、高可用的后台服务。 目前,我们已有三位组员,他们期待着与新的伙伴进行技术层面的深入交流,相互...阅读全文

Go语言关于chan理解的实验

编程这东西如果不自己动手写,很可能就永远也不知道是怎么回事了。 之前学习GO写的一些小工具一直没有用到chan这东西(我是PHP的),搜索了一些文章,发现大神们都写得很精彩、很高深,但我这种小白是看不懂了,只是了解了大概是一种类似线程的机制。 还是不会用,只好自已实践下了: 不得不说代码很烂,不过对我来说够了,主要是理解!执行结果: 如果不用goroutine直接使用thread作为过程函数的话,输出顺序应该是str1...str5。 这里使用goroutine调用thread,可能“线程”启动需要一点时间,因为goroutine启动thread后主线程是不会去管它了,所以先输出了str3。 之后是thread里输出了str1。 然后由于主线程要取出ch,就等待了3秒,输出str2。 接着是...阅读全文

博文 2014-12-19 10:05 一曲忧伤

【eoe专访】七牛云储存创始人:揭开GO语言的神秘面纱

载自:http://www.eoe.cn/news/14952.html 作者: 小白的白 来源: eoe 标签: Go语言揭秘 揭秘Go语言 七牛CEO 许式伟,七牛云存储CEO,曾任盛大创新院资深研究员、金山软件技术总监、WPS Office 2005首席架构师。在接触Go语言后即可被其大道至简、少即是多的设计哲学所倾倒。与团队合著《Go语言编程》。七牛云存储也是国内第一个吃螃蟹的团队,核心服务完全采用Go语言实现。 为此,eoe对这样一个传奇的技术员和团队进行了专访,希望大家看完后能对Go语言有全新的认识,扫除大家学习新技术语言恐怖和障碍。同时许总也谈了如何从一个普通程序员成长为首席架构师,做程序员与做Team Leader与CEO的区别,希望对技术成长和创业感兴趣的开发者有所帮助。 ...阅读全文

博文 2013-07-18 16:40 u010646653

理解Docker容器端口映射

在”理解Docker单机容器网络“一文中,还有一个Docker容器网络的功能尚未提及,那就是Docker容器的端口映射。即将容器的服务端口P’ 绑定到宿主机的端口P上,最终达到一种效果:外部程序通过宿主机的P端口访问,就像直接访问Docker容器网络内部容器提供的服务一样。 Docker针对端口映射前后有两种方案,一种是1.7版本之前docker-proxy+iptables DNAT的方式;另一种则是1.7版本(及之后)提供的完全由iptables DNAT实现的端口映射。不过在目前docker 1.9.1中,前一种方式依旧是默认方式。但是从Docker 1.7版本起,Docker提供了一个配置项:–userland-proxy,以让Docker用户决定是否启用docker-proxy,默...阅读全文

双管齐下,VMware的容器新战略

![alt 文本](http://blog.tenxcloud.com/wp-content/uploads/2015/09/%E5%8F%8C%E7%AE%A1%E9%BD%90%E4%B8%8B-300x155.jpg) VMware在本周的年度VMworld大会上为容器技术推出了一个双管齐下的技术。VMware vSphere Integrated Containers,这是现有vSphere产品的翻新,能够让Docker容器在vSphere VM内运行;而新的VMware Photon Platform是专为定制的Linux环境中运行容器。 通过这种双重策略,VMware希望留住那些想在生产环境中采用容器技术的客户群,同时为“container-first、cloud-f...阅读全文

第12期《Go语言:互联网时代的C》

[总结]第12期《Go语言:互联网时代的C》 posted on 04月 27, 2010 in 沙龙档案 with 3 Comments 活动介绍 主题:Go语言:互联网时代的CGo是Google内部开发的一个实验性质的语言,目的是代替C成为网络开发的系统语言。这个语言与C/C++相比有什么优点?对比Python/Erlang这种服务器系统语言又有什么优点?本次演讲将与你一起探讨。演讲人:李兆海(Googol Lee),就职于无限讯奇。前嵌入式程序员,现网络后端程序员。关注技术:Linux, Web Server, Optimize, C/C++/Python/Golang/sh 演讲PPT 演讲视频 鸣谢 @storygarden @tinyfool @hengdm @googollee...阅读全文

博文 2010-06-09 09:25 lanwilliam

go语言(一)开始

2009年11月10日 ,当我在漫无目的的在网络上聊天扯淡的时候,一个哥们,在一扯淡群发了个消息。google新出了个语言,网址是多少。 当时,没在意,翻开看看,嗯,除了记着了这个名字。别的没记得多少。 后来一直听着这名,甚至前年看到有招go程序员的,也没在意。但是去年开始发觉这玩意发酵的开始爆发了,好多地方都在说。 于是今年稍微翻了翻,发现这玩意貌似挺何意。然后这段时间买了本书一翻,呃,这玩意牛b啊。遂决定学学吧。 好先来个入门吧,来个简介: 一.从哪里来 开始不知,说出来真是大有来头。贴一个网上弄来的列表。 肯尼斯·蓝·汤普逊(Kenneth Lane Thompson,1943年2月4日-),小名为肯·汤普逊(Ken Thompson),为美国计算机科学学者,与丹尼斯·里奇同为1983...阅读全文

博文 2013-05-06 22:30 xming4321

GO语言零基础入门资料整理

GO语言跟它名字一样是门比较装逼的语言,鲜有菜鸟初学者教程,所以没有语言基础的话,理解起来会有点困难。闲来没事整理了一个GO零基础入门资料。 安装与简介 因为国内老被墙,被墙之后请在网上直接下载,下载链接 开发环境编辑器 1.Sublime,支持多标签,自动排版,高亮,简单的填补,简单的SHELL直接运行等。 《Ubuntu下使用Sublime Text 2搭建Go开发环境》 《Sublime Text 2搭建Go开发环境(Windows)》 2.vim + gocode 《Go的Vim的高亮和自动补齐》 3.LiteIDE:只用于GO环境开发的编辑器 4.免费的golang在线开发环境:由实验楼与StudyGolang合作提供的在线实验室,可直接通过浏览器访问进行Go语言的学习与编程。 一...阅读全文

博文 2015-11-19 23:32 weiyuefei

【独家】鲜为人知的Google go语言若干细节

Google于不久前发布了一门全新的开源编程语言名为Go。Go语言的设计最早始于2007年9月,设计者包括Robert Griesemer, Rob Pike和Ken Thompson,后来Ian Lance Taylor实现了基于GCC的go编译器gccgo,Russ Rox的加入推动了语言和库的实际可用性。它于2009年9月被官方正式宣布发布,兼容Linux和Mac操作系统。 Go是一门富有表达力的、并发的、具有垃圾回收功能的编程语言。 用Google的话来说:Go实验性地将C或者C++语言的性能、安全性与动态语言如Python的速度结合起来。代码的编译运行接近于C,甚至大规模的二进制编译只需要几秒钟。 Go中不包含的特性有: 1. 异常处理(Exception handling) 2....阅读全文

博文 2010-01-28 22:58 zengjiangyou

Google发布go编程语言

欢迎访问 iCompiler - 多核软件开发网。 Google发布go编程语言,目前为实验版本。快速编译,类型和访存安全,并发,快乐编码,开源。// a simple Helloworld program: hello.gopackage mainimport "fmt"func main(){fmt.Printf("Hello, iCompiler/n")}Go于2007年9月开始设计,主要设计者为Robert Griesemer,Rob Pike和Ken Thompson。后来Ian Lance Taylor实现了基于GCC的go编译器gccgo。Russ Rox的加入推动了语言和库的实际可用性。设计团队相当豪华。 Robert Griesemer参与设计Chrome浏览器中的Java...阅读全文

Sublime Text 给golang 加点料。自定义build

如果你用的时windows , 请自觉忽略, linux && mac 通用。 Sublime Text 有个 gosublime ,用来提供golang的语法解析以及提示什么的。 说实话,我一直想要一个匹配自己开发环境的编译器, 不用来回切换到命令行去build 自己的代码。 先说,我的项目目录是这样的: project/ project/build project/package1 project/package2 每个目录都是独立的, 编译结果需要放到build 目录下。如果手动执行, 可以这样: cd project/build go build ../package1 go build ../package2 ./restart_all.sh //这个时我自己的重启服务的脚本。 每...阅读全文

Go语言的崛起

Go语言的崛起? 英文原文:Google's Go Programming Language Grows Up: Now What? 我们这个世界真的需要另外一种C语言风格的编程语言吗?很显然,谷歌很早就这么认为了,在 2009 年,它借用雷蒙斯乐队的歌“Hey!Ho!Let’s Go”,正式推出了 Go 语言。现在 Go 语言开发团队已经开发出了这种语言的第一个稳定版本,他们称之为 Go 1,他们将这种语言推向世界,希望人们用这种语言“开发出健壮的软件产品和作品。”那么,现在人们对这种语言的使用情况又是如何呢? 让我们先回顾一下,什么是 Go 语言,是什么促使谷歌决定推出这样一种语言?按 Go 语言的“常见问题”里的说法,自从那个“重要的系统级编程语言”诞生距今已超过十几年了,这段时间计算...阅读全文

Go语言简史

提起Go语言的出身,我们就必须将我们饱含敬意的眼光投向持续推出惊世骇俗成果的贝尔实验室。贝尔实验室已经走出了多位诺贝尔奖获得者,一些对于现在科技至关重要的研究成果,比如晶体管、通信技术、数码相机的感光元件CCD、光电池等都源自贝尔实验室。该实验室在科技界的地位可想而之,是一个毫无争议的科研圣地。 这里我们重点介绍一下贝尔实验室中一个叫计算科学研究中心的部门对于操作系统和编程语言的贡献。回溯至上世纪的1969年(估计大部分读者那时候都还没出世),肯•汤普逊(Ken Thompson)和丹尼斯•里奇(Dennis Ritchie)在贝尔实验室的计算科学研究中心里开发出了UNIX这个大名鼎鼎的操作系统,还因为开发UNIX而衍生出了一门同样赫赫有名的编程语言,C语言。对于很大一部分人而言,UNIX就...阅读全文

博文 2012-08-02 14:52 turingbooks

Go语言近况

Go语言是Google公司的实验性语言,以BSD协议开放源代码。Go语言在Inferno操作系统相关的研究工作基础上开发,最初由Rob Pike等Google工程师在2007年9月启动设计工作,在2009年11月正式对外发布。 Go将动态语言易于编写的特性和静态语言的高效性相结合,具备良好的易用性和极佳的执行效率。Go语言最初定位于网络服务器、存储系统和数据库的程序设计,同时在语言中包含并发构造体,以方便的帮助开发者创建并行任务。Go语言具有效率极高的编译器,目前Go编译器能在Linux、FreeBSD以及Mac OS X平台下运行,但暂时没有对Windows环境提供编译支持。Go开发团队曾在博客中表示,编译完成的Go程序运行速度接近C语言实现的程序。 在今年五月份举办的Google I/O...阅读全文

TODO:Go语言同名Go字体发布

TODO:Go语言同名Go字体发布 2016-11-16 Go语言官方博客发布了一款同名字体–Go字体。此字体族包括正常、粗体和斜体渲染,支持比例和等宽字体。此字体已经经过用于编程方面的技术测试,使用Go字体显示,Go源码看起来非常漂亮,名副其实。标点符号容易辨识,操作符排列一致。如图 小编尝鲜了一翻,安装了实验性的用户工具箱有一些和文本元素相关的内容的golang包:golang.org/x/exp/shiny,录制了shiny的例子fluid的视频,主要是点击鼠标左键,按住鼠标左键移动,请欣赏。 wxgzh:ludong8...阅读全文

博文 2016-11-21 00:00 OneTODO

go语言的IDE实现自动补全的功能

第一步:下载https://github.com/nsf/gocode/ 第二步:解压。(任意目录),这里假如解压到c:/AAAAA/这个目录下 第三步:通过CMD到c:/AAAAA/中去,执行go install。执行成功后该目录下会生成一个gocode-master.exe 第四步:修改gocode-master.exe为gocode.exe到go安装目录下的bin目录中。 第五步:重新启动liteide.exe。 第六步:实验下...阅读全文

博文 2014-12-26 15:20 xiaoxiao346691378

Go1.3新特性 栈的全新实现—连续栈(4)

创文章,转载请注明出处:服务器非业余研究http://blog.csdn.net/erlib 作者Sunface 迄今为止的实验 目前我已经有一个标准的实施在运行了,虽然还不完整但是已经已经能编译简单的例子。 Peano(test/peano.go)修改后在跑到11!的时候比以前快了10%。虽然说要持有怀疑态度的看待这个问题,但是这个速度确实跟栈的增长方式是息息相关的(每次增长加倍栈的大小时会有10%速度提升,每次增加50%的栈大小时,只有2%的提升,每次增加25%反而会慢25%). “Hot split"的测试用例(stacksplit.go).使用-gcflags -l 进行编译 分段的栈: 不分割:1.25925147s 分割: 5.372118558s <-这里触发了热分割问题(见上...阅读全文

博文 2014-04-24 17:28 abv123456789