Go从入门到不放弃
文章平均质量分 85
最新几个月的编程语言排名,Go语言都是出于上升的趋势,并且在中国,Go语言似乎格外的火。
优惠券已抵扣
余额抵扣
还需支付
¥29.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
一苇渡江694
无有功德,一苇渡江
展开
-
为什么Go语言在中国格外的"火"
go语言推出有几年了,似乎不温不火。但是在中国范围内,确实被关注的一塌糊涂。这是2017年2月份TIOBE出的编程语言排名:在拉勾网上搜索go的职位,结果有119个(2017年2月14日搜索结果),似乎还没有那么火爆:但是在中国,很多公司,很多程序员都在谈论go语言,也就是说在中国对于go的关注异常火爆。根据谷歌搜索的统计,如下图: The graph above shows the searc原创 2019-07-19 08:47:22 · 92109 阅读 · 38 评论 -
Go语言的前世今生
今天跟大家分享一下Go语言的发展历程。谷歌工程师的20%时间谷歌的“20%时间”工作方式,允许工程师拿出20%的时间来研究自己喜欢的项目。语音服务Google Now、谷歌新闻Google News、谷歌地图Google Map上的交通信息等,全都是20%时间的产物。Go语言最开始也是20%时间的产物。诞生时间 Go 语言起源 2007 年,并于 2009 年正式对外发布。它从 2009 年 9原创 2017-02-15 14:44:15 · 22817 阅读 · 2 评论 -
Go语言Windows系统开发环境配置
博客《为什么Go语言在中国格外的”火”》分析了为了中国的程序员对Go语言情有独钟。 博客《Go语言的前世今生》简单介绍了Go语言的发展历程。按照套路,本应该还有一篇博客写Go语言的优势。但目前不会这么做,我想大家更应该的是在学习使用Go语言的过程中,体会到他的威力。所以,今天我们就开始我们的Go语音学习之旅。工欲善其事,必先利其器。第一步当然是开发环境的搭建,今天就介绍一下windows系统上如何原创 2017-02-16 17:46:10 · 9999 阅读 · 0 评论 -
Go语言Mac开发环境配置
博客《为什么Go语言在中国格外的”火”》分析了为了中国的程序员对Go语言情有独钟。 博客《Go语言的前世今生》简单介绍了Go语言的发展历程。 博客《Go语言Windows系统开发环境配置》介绍一下windows系统上如何搭建Golang开发环境。今天就继续介绍一下Mac上如何搭建golang开发环境go官方: https://golang.org/下载地址: https://golan原创 2017-02-18 23:01:32 · 29909 阅读 · 2 评论 -
Go语言学习之expvar包(公共变量)(the way to go)
生命不止,继续 go go go!!!基础还是要打好,很久没有分享golang的标准包了,今天就来一个expvar包。Package expvar概述 Package expvar provides a standardized interface to public variables, such as operation counters in servers. It exposes thes原创 2017-11-08 15:22:04 · 4874 阅读 · 0 评论 -
Go语言学习之sync包(临时对象池Pool、互斥锁Mutex、等待Cond)(the way to go)
生命不止,继续 go go go!!!golang的特点就是语言层面支持并发,并且实现并发非常简单,只需在需要并发的函数前面添加关键字go。 但是如何处理go并发机制中不同goroutine之间的同步与通信,golang 中提供了sync包来解决相关的问题,当然还有其他的方式比如channel,原子操作atomic等等,这里先介绍sync包的用法.这里,跟大家一些学习golang的标准库,sync原创 2017-09-13 15:11:11 · 5350 阅读 · 1 评论 -
Go语言学习之cgo(golang与C语言相互调用)
生命不止,继续 go go go !!!几乎所有的编程语言都有C语言的影子,当然golang也不例外。可以看到golang的创始者们与c language有着密切的联系。所有,golang和c语言的相互调用也是理所应当。什么场合会使用Go与C的互操作呢? 下面的地址给出这样的答案:http://tonybai.com/2012/09/26/interoperability-between-go-a原创 2017-08-21 16:10:50 · 27184 阅读 · 0 评论 -
Go语言学习之mime包(the way to go)
生命不止,继续 go go go !!!很久之前,写过一篇文章来介绍Windows下如何获取文件的MIME: 《windows客户端开发–获取windows系统中文件的MIME》其中,用到了叫做名为FindMimeFromData的Windows api.所以今天介绍一下golang中为我们提供的mime package。MIMEMIME是英文Multipurpose Internet Mail原创 2017-08-16 11:09:47 · 7969 阅读 · 0 评论 -
Go语言学习之reflect包(The way to go)
生命不止,继续 go go go !!!reflect,即反射。对于C++程序员来说比较陌生,对于Java或是C#程序员来说理解反射就易如反掌了。golang中为我们提供了reflect包用于反射,在这样跟诸位一起学习进步,只是浅尝辄止罢了。C#中反射反射指程序可以访问、检测和修改它本身状态或行为的一种能力。 程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象原创 2017-07-18 16:02:55 · 5398 阅读 · 2 评论 -
Go语言学习之strconv包(The way to go)
生命不止,继续 go go go !!!今天跟大家一起分享strconv包,strconv是golang用来做数据类型转换的一个库。文档地址: https://golang.org/pkg/strconv/作用: Package strconv implements conversions to and from string representations of basic data type原创 2017-07-17 11:42:18 · 4858 阅读 · 0 评论 -
Go语言学习之net/url包(url相关操作)(the way to go)
生命不止,继续 go go go !!!今天跟大家分享的是是net/url package,从名字已经可以看出来了,与url相关的标准库。作用: Package url parses URLs and implements query escaping.接下来就看看有那些方法:func QueryEscapefunc QueryEscape(s string) stringQueryEscape原创 2017-07-12 15:21:32 · 22908 阅读 · 0 评论 -
Go语言学习之strings包(the way to go)
生命不止,继续 go go go !!!今天跟大家分享的是stirngs包,为我们提供了一些方便的字符串操作。这里需要注意一下,不引入strings包同样是可以使用string定义变量的。之前的博客结果过string的用法: Go语言学习之字符串(The way to go)import “strings” 官方描述: Package strings implements simple fun原创 2017-07-06 15:36:43 · 5000 阅读 · 0 评论 -
Go语言学习之path/filepath包(the way to go)
生命不止,继续 go go go !!!文件以及文件夹的路径在编程中经常遇到,在C++工程中,我们往往自己写一个文件,里面塞满了关于路径的操作。golang很好,为我们提供了path/filepath包,方便极了。import “path/filepath” 作用: Package filepath implements utility routines for manipulating fil原创 2017-07-04 15:03:01 · 11357 阅读 · 1 评论 -
Go语言学习之image、image/color、image/png、image/jpeg包(the way to go)
生命不止,继续 go go go !!!golang同样为我们提供了很多关于图片处理的标准库,这里与大家一起学习分享。image package作用: Package image implements a basic 2-D image library. image包实现了一个基本的2D图像库.方法: func NewNRGBAfunc NewNRGBA(r Rectangle) *NRGBA原创 2017-06-30 17:30:20 · 11656 阅读 · 0 评论 -
Go语言学习之Hello World(The way to go)
分析过Go语言为什么在中国格外的火,介绍过Go语言的前世今生,也与大家分享了Windows和Mac上如何进行环境变量的配置。现在,终于可以开始Go之旅了。当然按照国际惯例,从Hello World开始吧!!!Hello World例子我们队Go中的hello world并不陌生,因为在测试开发环境的时候,我们就使用过,这里先贴上代码,再一点点进行分析:package mainimport "fmt"原创 2017-02-21 14:33:53 · 7011 阅读 · 0 评论 -
Go语言学习之变量(The way to go)
上一篇博客对go程序对整体结构进行了简要介绍,记忆对fmt包进行了简要介绍,今天跟大家分享的是go语言中的变量,variable。var关键字go语言使用var关键字来定义变量,但是和c++不同的是,类型放在变量的后面,格式如下:var variable_list optional_data_type;下面就简单定义几个变量:var i, j, k intvar c, ch bytev原创 2017-02-22 00:47:44 · 18378 阅读 · 0 评论 -
Go语言学习之常量(The way to go)
生命不止,继续go go go .上一篇博客《Go语言学习之变量(The way to go)介绍了go中的变量,今天就介绍常量。const关键字跟c++中一样,go中同样具有const关键字,来声明常量。 语法是这样的:const variable type = value;下面就是简单的常量定义:const LENGTH int = 10const WIDTH int = 5 同样可以用块原创 2017-02-23 00:46:34 · 14628 阅读 · 0 评论 -
Go语言学习之数据类型以及类型转换(The way to go)
生命不止,继续go go go 介绍来go中的变量和常量,今天介绍一下go中的基本类型。可以分为四大类,现在一点点道来。Boolean Types布尔类型,不用过多介绍来吧,就是true和false。Numeric Types数值类型包括整型和浮点型:integer typesfloating point valuesothersstring typesA string type represent原创 2017-02-23 23:59:23 · 7917 阅读 · 0 评论 -
Go语言学习之运算符(The way to go)
生命不止,继续go go go今天介绍go中的运算符。 运算符大概分为: Arithmetic Operators Relational Operators Logical Operators Bitwise Operators Assignment Operators Misc OperatorsArithmetic Operators这里没有什么好说的。唯一需要注意的就是自增和自减原创 2017-02-25 00:18:12 · 13228 阅读 · 1 评论 -
Go语言学习之流程控制(The way to go)
生命不止,继续Go go go.今天介绍go中的流程控制,其中包括: if else switch for goto break continue 别等了,就这三个,没有了while。if…else…条件表达式必须是布尔类型 之前提到过,下面的代码会报错:cannot use a (type int) as type bool in assignmenta := 1if a {原创 2017-02-27 00:21:53 · 10921 阅读 · 0 评论 -
Go语言学习之函数(The way to go)
生命不止,继续Go go go.变量介绍完了,流程控制介绍完了,也该轮到函数了。 go中,使用关键字func进行函数声明:func function_name( [parameter list] ) [return_types]{ body of the function}比如,声明一个函数,交换两个字符串:func swap(x, y string) (string, string) {原创 2017-02-27 23:42:22 · 13459 阅读 · 0 评论 -
Go语言学习之字符串(The way to go)
生命不止,继续Go go go. 今天与大家分享golang中的字符串。跟其他很多编程语言一样,字符串也是go中的内建类型。 字符串是这样声明的:type stringStruct struct { str *byte len int}这里需要强调一下:byte 和 uint8 是一样一样的。 字符串是不可变的字节序列,这里跟c++有一点点区别的。下面是go中字符串的简单应用:原创 2017-03-19 22:58:20 · 6912 阅读 · 0 评论 -
Go语言学习之Arrays和Slices (The way to go)
生命不止,继续Go go go. 今天与大家分享golang中的数组、切片、字典。Arrays声明一个数组:var x [3]int声明一个数组并初始化:x := [5]float64{ 98, 93, 77, 82, 83 }通过下标修改数组package mainimport "fmt"func main() { var x [5]int x[4] = 100 fmt.Println原创 2017-03-30 20:00:12 · 3208 阅读 · 3 评论 -
Go语言学习之map (The way to go)
生命不止,继续Go go go. 今天与大家分享golang中的map。map: One of the most useful data structures in computer science is the hash table. Many hash table implementations exist with varying properties, but in general the原创 2017-04-01 10:48:39 · 3682 阅读 · 1 评论 -
Go语言学习之指针(The way to go)
生命不止,继续Go go go. 今天与大家分享golang中的Pointers。如果你是从c++转到go,那么恭喜你,对于指针可谓清晰明了。通过例子进行讲解:package mainimport "fmt"func updateValue(val int) { val = val + 100}func main() { val := 1000 updateValue(va原创 2017-04-05 16:44:25 · 6807 阅读 · 1 评论 -
Go语言学习之ioutil包(The way to go)
生命不止,继续Go go go.今天介绍一下io/ioutil 包。 Package ioutil implements some I/O utility functions.就是跟操作文件、文件夹相关的函数,下面通过例子进行介绍。ReadAll 读取 r 中的所有数据,返回读取的数据和遇到的错误。 如果读取成功,则 err 返回 nil,而不是 EOF,因为 ReadAll 定义为读取 所原创 2017-04-06 16:16:32 · 8148 阅读 · 1 评论 -
Go语言学习之struct(The way to go)
生命不止,继续Go go go.今天跟大家分享一些golang中的struct。定义package mainimport "fmt"type Vertex struct { X int Y int}func main() { fmt.Println(Vertex{1, 2})}type Circle struct { x, y, r float64}初始化var c原创 2017-04-10 23:26:39 · 5991 阅读 · 0 评论 -
Go语言学习之interface(The way to go)
生命不止,继续Go go go.今天跟大家分享一些golang中的interface。golang中没有类的概念,但是有结构struct,同样也有接口interface的概念。golang中的接口与java中的接口,与C++中的纯虚函数有几分相似,但是也有很多的不同之处。所以,还是要认真学习golang中的interface。定义 关键字:interfacetype Men interface {原创 2017-04-11 14:28:09 · 6403 阅读 · 0 评论 -
Go语言学习之method(The way to go)
生命不止,继续go go go !在golang的世界中,一定要区分 方法和函数。Go中没有类的概念,但是我们可以在一些类型上定义一些方法,也就是所谓的方法,跟函数不同。通过func关键字声明方法type Vertex struct { X, Y float64}func (v Vertex) Abs() float64 { return math.Sqrt(v.X*v.X + v原创 2017-04-12 01:24:19 · 3981 阅读 · 1 评论 -
Go语言学习之net/http包(The way to go)
生命不止,继续go go go!!!从包名就能看到了吧,是golang中提供http的包: provides HTTP client and server implementations.先看一个例子:package mainimport "net/http"func main() { http.ListenAndServe(":8080", http.FileServer(http.D原创 2017-04-12 20:25:54 · 17366 阅读 · 0 评论 -
Go语言学习之net包(The way to go)
生命不止,继续go go go!!!不要问我net包和net/http包的区别,我们先会用,两者的区别慢慢去体会。net包有什么作用?Package net provides a portable interface for network I/O, including TCP/IP, UDP, domain name resolution, and Unix domain sockets.Alth原创 2017-04-13 02:19:38 · 8675 阅读 · 0 评论 -
Go语言学习之bufio包(The way to go)
生命不止,继续Go go go.还记得吗,我们之前介绍过ioutil包,今天继续再介绍一下bufio包吧。从字面就看出来了,有buf,那就是缓冲的意思。Package bufio implements buffered I/O. It wraps an io.Reader or io.Writer object, creating another object (Reader or Writer)原创 2017-04-15 00:34:28 · 7285 阅读 · 0 评论 -
Go语言学习之errors包(The way to go)
生命不止,继续go go go !今天跟大家分享的是errors package,一个简单但是非常实用的技巧。在http包中,有个Get方法如下:func (c *Client) Get(url string) (resp *Response, err error)我们看到了返回值,有error。我们可以对这个error进行处理:resp, err := c.Get("http://blog.csd原创 2017-04-17 16:20:32 · 8946 阅读 · 1 评论 -
Go语言学习之log包(The way to go)
生命不止,继续go go go!!!讲真,go为我们提供的log package的功能挺简单的,但是常规的功能够用了,我们就进行简简单单的介绍。之后,会自己封装自己log,比如用来记录我们的http日志等。import( “log” ) Package log implements a simple logging package. It defines a type, Logger, with原创 2017-04-18 00:47:54 · 3915 阅读 · 0 评论 -
Go语言学习之encoding/json包(The way to go)
生命不止,继续go go go !!!json json大家都不陌生: JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript 规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升原创 2017-04-19 14:10:57 · 12046 阅读 · 2 评论 -
Go语言学习之os包中文件相关的操作(The way to go)
生命不止,继续 go go go !!!今天跟大家分享学习的是os package,主要是介绍一些跟文件或文件夹相关的操作。os包 Package os provides a platform-independent interface to operating system functionality. The design is Unix-like, although the error原创 2017-04-24 14:39:36 · 7281 阅读 · 1 评论 -
Go语言学习之runtime包(The way to go)
生命不止,继续 go go go !!!今天跟大家分享一下runtime package,主要是介绍几个经常用到的方法。runtimePackage runtime contains operations that interact with Go’s runtime system, such as functions to control goroutines. It also includes原创 2017-04-26 14:04:37 · 14647 阅读 · 1 评论 -
Go语言学习之encoding/xml(The way to go)
生命不止,继续 go go go !!!介绍了encoding/json包的使用,就没有理由不介绍encoding/xml包。xml vs jsonxml和json都是文本表示的数据格式: 跨平台 跨系统交换数据但是,XML更适合标记文档,JSON更适合数据交互。两者最大的不同在于,XML是一个完整的标记语言,而JSON不是。XML利用标记语言的特性提供了绝佳的延展性(如XPath),在数据存储原创 2017-05-02 14:16:24 · 8180 阅读 · 0 评论 -
Go语言学习之flag包(The way to go)
生命不止,继续 go go go !!!今天跟大家分享的是golang中的flag package,如果你在golang中用到了命令行参数,那么你就必须要了解一些flag的知识。Package flag 作用: Package flag implements command-line flag parsing. Go语言通过使用标准库里的flag包来处理命令行参数。定义flags 定义Str原创 2017-06-08 13:26:54 · 5816 阅读 · 1 评论 -
Go语言学习之new与make(The way to go)
生命不止,继续 go go go !!!博客《Go语言学习之指针(The way to go)》中介绍了golang中的指针,我们用到了new:package mainimport "fmt"func updateValue(someVal *int, someVal2 *float64) { *someVal = *someVal + 100 *someVal2 = *someVa原创 2017-06-12 15:33:30 · 5375 阅读 · 0 评论