如何开始学习Go语言

除了Java、Python和JavaScript以外,若是要开始学习一门新语言的话,我想应该是Go!html

Go语言正在被愈来愈多的公司使用。咱们公司的后端服务已经全面采用Go语言实现了。golang

最开始接触Go语言是去年将一份Go代码“翻译”成Python并集成到测试平台上,说来也挺神奇,我历来没学过Go却完成了这个工做,这也侧面反应了Go的语法仍是很平易近人的。web

今年,调岗以后已经没有太多时间写代码了,但若是要开始学习一个新的语言或技术的话,我最想学的是Go!编程

目前来看,Go彷佛还并无太多测试人员使用的场景,不过,我以前介绍过的BDD行为驱动框架gauge是由Go开发的,固然,它也支持使用Go来编写BDD测试代码。后端

对于,已经有必定开发经验的同窗,如何快速的开始学习Go语言呢?我这里给一些思路。并发


第一步:下载和安装

下载地址:https://studygolang.com/dl框架

在配置环境的时候你须要重点了解GOROOT、GOPATH的做用。编辑器

你还要准备一款称手的编辑器,若是你像我同样,一直都在使用VS Code的话,那么就它就能够了。函数


第二步:从hello world开始

先运行一个hello world程序,认识Go语言的语法。性能

package main
 
import (
    "fmt"
)
 
func main(){
    fmt.Println("helloworld!")
}


第三步:熟悉Go的语法

接下来,你可能要花一周左右的时间熟悉Go语言的语法。好比,变量定义、if/for、函数、Map、跨文件的程序调用…等,固然,还有一些Go特有的知识。

我是看不进去厚厚的编程书,因此通常会找简单的教程。

菜鸟教程:https://www.runoob.com/go/go-tutorial.html

固然,我更喜欢看视频教程,虽然质量良莠不齐,但我仍然以为看视频比我本身看书更有效率。

腾讯课堂:https://ke.qq.com/course/list/go
网易云课堂:https://study.163.com/courses-search?keyword=go

熟悉一段Go代码:

package main
 
import"fmt"
 
func myFunc() {
    i := 0
    Here:   //这行的第一个词,以冒号结束做为标签
    fmt.Println(i)
    i++
    if i <10{
        goto Here   //跳转到Here去
    }
   
}

func main() {
    //调用函数
    myFunc()
}


第四步:Go如何作单元测试

针对Go作测试也很是简单。好比,这是一个被测试文件:add.go。

package test_demo

func Add(a int, b int) int{
    return a + b
}

下面针对Add()函数编写测试用例,test_add.go

package test_demo
 
import (
    "testing"
)
 
func TestAdd1(t *testing.T){
    r:= Add(1, 2)
    if r !=3{
        t.Errorf("Add(1, 2)failed. Got %d, expected 3.", r)
    }
 
}
 
func TestAdd2(t *testing.T){
    r:= Add(2, 2)
    if r !=4{
        t.Errorf("Add(2, 2)failed. Got %d, expected 4.", r)
    }
 
}

你只须要执行 go test 命令就能够运行上面的测试了。


第五步:从哪儿找第三方库

固然,你只学习go语言自己,基本是作不了什么事的,必需要使用第三方扩展库。

https://awesome-go.com/

这里罗列了Go语言的第三方库,经过这些第三方库的介绍,咱们也能够大概知道Go能够用来干什么。

https://go-search.org/

若是你知道库的名字的话,也能够在这个网站上搜索。

据我了解,Go的第三方库大多都在GitHub上面。


第六步:用Go作Web开发

Go是静态语言,并且支持并发编程,因此,他有自然的性能优点,大多公司主要使用Go也是开发后端服务(即API)。

终于到了实战阶段,若是咱们真的要掌握一门语言,那么必定要用它来开发一个项目出来。这个过程大概须要一个月。

Beego:https://beego.me/

Beego是Go下在主流的Web开发框架,资料相对比较丰富,并且有完善的文档。你可为此制定一个目标,好比用它来开发一个Blog,为此,你须要详细阅读Beego文档,以及学习相关的Web开发技术。

等你完成这个项目的时候,我想你已经会使用Go语言了。

相关文章
相关标签/搜索