Go基本概念(1)

1.Go 的安装 1.1需要提前安装JDK 1.2安装Go server ubuntu系统: 预先下载好.deb安装包 dpkg -i go-server-${version}.deb 服务状态查看,启动,停止 sudo /etc/init.d/go-server status sudo /etc/init.d/go-server start sudo /etc/init.d/go-server stop Redhat安装: 预先下载好rpm包 rpm -i go-server-${versio...阅读全文

CSDN博客 2014-11-26 22:40 biheyu

google hosts 2014.12.16 更新

google hosts 2014.12.16 更新,本文只提供google相关服务的hosts,目前有效,失效后会及时更新。 注1:请使用chrome浏览器,并在地址栏里输入 chrome://flags/,然后查找QUIC,启用该协议,同时建议启用SPDY/4,能让访问更流畅。 注2:请使用https的方式访问,比如:https://www.google.com 注3:默认可能会跳转到www.google.com.hk,如果.hk访问困难,请使用:https://www.google.com...阅读全文

开源中国博客 2014-12-23 12:19 弹一曲Happy颂

go基础——02(一些技巧 、一些规则)

go语言学习笔记 1、一些技巧 分组声明 在Go语言中,同时声明多个常量、变量,或者导入多个包时,可采用分组的方式进行声明。 例如下面的代码: import "fmt" import "os" const i = 100 const pi = 3.1415 const prefix = "Go " var i int var pi float32 var prefix string 可以分组写成如下形式: import( //分组的方式进行声明 导入多个包 "fmt" "os" ) const(...阅读全文

CSDN博客 2014-09-19 23:41 shaozhang872196

深度剖析channel

##channel的用法 channel是golang中很重要的概念,配合goroutine是golang能够方便实现并发编程的关键。channel其实就是传统语言的阻塞消息队列,可以用来做不同goroutine之间的消息传递,由于goroutine是轻量级的线程能够在语言层面调度,所以channel在golang中也常被用来同步goroutine。 一般channel的声明形式为:var chanName chan ElementType ElementType指定这个channel所能传递的...阅读全文

shanks's blog 2015-10-29 21:16:25 shanks

golang信号处理

go语言中处理信号很简单,并且不会中断程序的正常运行逻辑。 想监听一个信号只需要调用Notify函数 **func Notify(c chan<- os.Signal, sig ...os.Signal)** + sig 表示你希望监听的信号,如果不设置表示监听所有的信号。 + c 表示当信号发生时,系统会往该channel中写入发生的信号。 如果不想监听信号则可以调用stop **func Stop(c chan<- os.Signal)** ##实例解析 ``` exitChan := ma...阅读全文

shanks's blog 2015-10-29 04:36:02 shanks

GO使用SMTP发送邮件

核心代码:smtp.SendMail(host, auth, user, send_to, msg),auth := smtp.PlainAuth("", user, password, hp[0]) 可行方案:使用企业邮箱的SMTP发送邮件,host :="smtp.exmail.qq.com:25",因此需要一个企业邮箱的账号和密码 直接上代码: main.go package main import ( "fmt" "net/smtp" "strings" ) func SendToMai...阅读全文

开源中国博客 2014-12-22 14:39 0412

Scala和Go的区别

Keith Morrow作为Scala的支持者,发表了这篇倾向于Scala的文章,主要也是为了反驳一年前 Paul Dix 的文章:why he prefers Go over Node and Scala,Paul Dix认为Go好于Scala的原因在于下面几个方面:并发性, 易理解性, 代码分享和学习难度。之所以时隔一年才有人反驳,一则因为双方不了解,二则可能是随着Go编写的Docker流行,拳头产品的出现让大家对Go刮目相看。 Keith Morrow则认为Go比Scala易于学习是因为G...阅读全文

CSDN博客 2014-12-18 15:16 working_brain

GO语言介绍

Go语言介绍 Go语言是Google于2009年发布的第二款开源的编程语言。Go语言的特点:准对多处理器应用程序的编程进行了优化,使用Go编译程序可以媲美C或C++的代码速度,而且拥有Python解释语言的简洁和开发效率。 下面的一段取自知乎:(包含自己的修改) Go的优势: 可以编译成机器码,不依赖其他库 静态类型语言,有动态语言的感觉。静态语言就是可以在编译的时候检查出来隐藏的大多数问题,动态语言的感觉就是很多的包可以使用,写起来效率很高 语言层面支持并发,这是Go语言的最大的特色,天生支持...阅读全文

ITEYE博客 2014-12-21 elf8848

Mac 安装 GO语言开发环境

官网:https://golang.org/ go语言的安装:http://docscn.studygolang.com/doc/install 下载:go1.4.darwin-amd64-osx10.8.pkg 默认安装,被安装了 /usr/local/go 目录 并自设置了环境变量。 go env 可查看目前的go的环境变量 这go就可以执行了, 下面还要配置一个GOPATH环境变量,是工作目录。 根据约定,GOPATH下需要建立3个目录: bin 存储编译后的可执行文件 pkg 存放编译后...阅读全文

ITEYE博客 2014-12-21 elf8848

TCP self-connection

Go 语言的 net 库里有下面这样的一段代码,这段代码是用来发起一个 tcp 连接的,仔细阅读这段代码可以发现代码里处理了一种很不常见的特殊情形,也就是 tcp self-connection。代码中的注释解释得很详细了。 func dialTCP(net string, laddr, raddr *TCPAddr, deadline time.Time) (*TCPConn, error) { fd, err := internetSocket(net, laddr, raddr, dead...阅读全文

skoo's notes 11 October 2014 skoo

使用cpu的时钟周期作为随机数发生器的种子

对于一个伪随机数发生器来说,种子的设置是非常重要的;Go语言runtime中的每个线程也有自己的一个随机数发生器,当然也是伪的,这个伪随机数发生器的种子设置采用了另外一种方法——使用了cpu的时钟周期计数器。 go语言的实现采用了一段汇编代码读取cpu的cycle信息,如下: TEXT runtime·cputicks(SB),7,$0 RDTSC SHLQ $32, DX ADDQ DX, AX RET 这段汇编代码的语法好像有点奇怪,和平时常见的AT&T语法有那么一点不同;确实,Go语言有一...阅读全文

skoo's notes 14 November 2013 skoo

gocrawl类库解析

最近打算介绍go语言编写的开源类库架构分析,自己最开始使用go语言是做爬虫的,采用的是gocrawl, gocrawl是一个使用go语言编写的开源爬虫类库,今天来分析下gocrawl的实现。 ## 示例代码 ``` package gocrawl import ( "github.com/PuerkitoBio/goquery" "net/http" "regexp" "time" ) // Only enqueue the root and paths beginning with an "a...阅读全文

shanks's blog 2015-10-27 21:23:04 shanks

《Go语言编程》【3.6 完整示例】代码错误和文件目录结构

1. 音乐结构体命名错误,不是Music,而是MusicEntry,如下: 2. 包名错误,不是library,而是mlib: 3. manager.go代码Remove函数删除中间元素有错,index-1应当改成index: 4. m0变量初始化错误,"Celion Dion", 为多余,MP3应当加上双引号: 5. manager_test.go代码错误,无Genre: 6. manager_test.go代码错误,err多余: 7. 少了wav.go代码,可以直接拷贝mp3.go全部替换M...阅读全文

开源中国博客 2014-12-21 03:30 董松