AI智能
改变未来

大厂都在用的GO语言入门-Helloworld

近期腾讯发布了《腾讯研发大数据报告》,Go语言在鹅厂的使用率,已经上升到了TOP5的位置了。

 

我们知道腾讯在智能运维尤其是DEVOPS方面,是走在各大厂的前列的,尤其是基于GO语言开的蓝鲸平台,水平相当高。

经笔者实地上手体验,GO语言在各个方面还是非常优秀的,因此笔者计划出一系列的教程详细的介绍一下GO语言的特性

 

一.GO常用终端命令
如果有读者没有使用本书有前文介绍的liteIDE做为开发环境,而是直接使用原生环境的话,那么在命令行或终端的常用命令简介如下:
go get:获取远程包(如下载go get \”github.com/go-sql-driver/mysql\”下载mysql的驱动包)
go run:运行程序,在liteIDE中对应Ctrl+R命令
go build:编译程序,一般无参数编译即可。如果需要编译某些源码文件,并生成可执行文件,需要加-o参数,并指定参数列表$ go build -o myexec main.go lib.go
go fmt:格式化源码,调整代码缩进等
go install:编译整个工程并生成可执行文件或者库文件。go install 是建立在 GOPATH 上的,可执行文件生成在GOPATH 下的 bin 目录。
go test:执行测试计划
二.GOPATH目录结构详述
第二章介绍的GO语言开发环境搭建时配置的GOPATH,就是GO语言的工程目录。如果想要构建一个项目,就需要将这个项目的目录添加到GOPATH环境变量中,多个工程目录之间可以使用分号;分隔。
一个Go语言项目的目录一般包含以下三个子目录:
src 目录:放置项目和库的源代码文件,其代码以包(package)的形式组织的存放,包是Go语言管理代码的重要机制,其作用类似于Java中的 package 和 C/C++ 的头文件。Go 源文件中第一段有效代码必须是package <包名> 的形式,如 package project1。包的名称又与 src 下的子目录是一一对应的。例如,若一个源文件被声明属于project1的包所属的代码文件,应该被放在src\\log目录下。而\\src根目录下的代码文件只能属于main 包。另外go get 命令安装的远程包,并被放到src目录下对应的包文件夹当中。
pkg目录:保存由go build命令生成的库(.a)文件。
bin目录:与 pkg 目录类似,保存由go build命令生成的可执行(.exe)文件。
一个典型的GOPATH目录结构如下:
G:/go/
     src/
         foo/
             bar/               (bar项目的代码)
                 x.go
             quux/              (quxx项目的代码)
                 y.go
     bin/
         quux                   (quxx项目生成的可执行文件)
     pkg/
         linux_amd64/
             foo/
                 bar.a          (bar项目生成的.a文件)
三.GO语言的Hello World
通过之前的介绍,我们终于可以来到所有编程语言都要遇到的“Hello World!”程序。
GO语言的“Hello World!”非常简单,如下所示:

这个“Hello World!”麻雀虽小五脏俱全,具体说明如下:
1. Go源代码文件的开头必须是package 声明
package声明的具体格式如下:
package name
其中name 为包的名字。
有关这个特性上文也已经介绍了,这里还有两点需要强调,一是同一目录下的同级文件必须属于同一个包;二是main 包是Go语言程序的入口包,一个Go语言的可执行程序有且仅有一个 main 包。
2.导入包
使用import语句,用于导入程序的依赖包:
import \”name\”
其中name 为所导入包的名字。当需要导入多个包时,用括号( )将包的名字包围起来,并且每个包名占用一行,具体如下:

[code]import(\"name1\"\"name2\")

另外有一点需要注意,如果导入了没有使用到的包,则会报编译错误,例如我们在“Hello World!”多导入一个os包,

[code]package main    // 声明 main 包,所有GO语言代码第一行必须是package + 包名import (\"fmt\"       // 导入打印字符串是需要用到的fmt 包\"os\")func main() {   // 声明 main 主函数,这是GO语言程序入fmt.Println(\"Hello World!\") // 通过控制台打印 Hello World!}

会报出 imported and not used: \”os\”的错误 
3.main函数
我们在代码的第5行func main() { 创建了main 函数,它是Go语言程序的入口函数,在Go语言中,所有函数都以关键字 func 开头的,定义格式如下所示:

[code]func name (para_list) (return_list){func body}

其中name(函数名):由字母、数字、下画线_组成,函数名不能以数字开头,在同一个包内,函数也不能重名。
para_list(参数列表):一个参数由变量名和变量类型组成,例如a int, b string
return_list(返回值列表):与参数列明一样,格式也是由变量名和类型组成,使用 return语句返回。由于GO语言中支持多返回值,这就要求return时必须与定义的返回值列表一一对应。
特别注意:Go语言func的{必须和函数名称在同一行,否则会有编译错误。
4.输出Hello World!
代码的第6行fmt.Println(\”Hello World!\”),中Println 是 fmt 包中的一个函数,用来向控制台输出格式化数据,类似于C语言中的 printf 函数。
 

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 大厂都在用的GO语言入门-Helloworld