欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Go语言 1入门

程序员文章站 2022-03-26 22:55:48
文章由作者马志国在博客园的原创,若转载请于明显处标记出处:http://www.cnblogs.com/mazg/ 对应的视频教程地址(土豆网):http://list.youku.com/albumlist/show/id_51453937.html 1.1 编译环境及开发工具 1.1.1 Go语 ......

文章由作者马志国在博客园的原创,若转载请于明显处标记出处:http://www.cnblogs.com/mazg/         

对应的视频教程地址(腾讯课堂):https://mazhiguo.ke.qq.com/

对应的视频教程地址(网易云课堂):http://study.163.com/course/introduction/1004982006.htm

对应的视频教程地址(51cto):http://edu.51cto.com/course/12520.html

 

Go学习群:415660935

 

1.1 编译环境及开发工具

1.1.1 Go语言编译器

下载地址:http://liteide.org/cn/doc/install/

由于Go语言支持WindowsmacLinux等主流操作系统,所以我们需要根据操作系统选择不同的安装包文件。以win10 64位操作系统为例,选择的安装包文件为:go1.8.3.windows-amd64.msi。点击默认安装即可。

接下来,配置环境变量GOPATH。右击此电脑选择属性,然后选择左边列表中的高级系统设置,接下来在弹出的对话框中点击环境变量按钮。在系统变量中,点击新建按钮。在弹出的对话框中,变量名写GOPATH,变量值写设置的Go项目路径。

 Go项目路径下约定有三个子目录:

1) src 存放源代码(比如:.go .c .h .s等)

2) pkg存放编译后生成的文件(比如:.a

3) bin 存放编译后生成的可执行文件(为了执行方便,可以把此目录加入到 path 环境变量中)

 Go常用的三个命令:

  1. go run:直接运行程序
  2. go build:编译生成可执行程序
  3. go get:获取远程包(需提前安装 githg

 

1.1.2 LiteIDE

下载地址:http://liteide.org/cn/

LiteIDE是一款简单,开源,跨平台的Go IDE

同样以win10 64位操作系统为例,选择的安装包文件为:liteidex32.2.windows-qt5.zip。直接解压,在其中的bin目录下,点击liteide.exe即可运行。

重新设置GOPATH后,liteIDE不会自动更新,也需要重新设置查看”->”编辑当前环境Go工具对包的查找从src目录开始。

 

1.1.3 Git工具

下载地址:https://git-scm.com/download/win

win10 64位操作系统为例,选择的安装包文件为:Git-2.8.1-64-bit.exe。  

使用Git工具获取Go的远程包。Git是一款免费、开源的分布式版本控制系统,方便的从https://github.com/获取源代码。gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub

 

1.2 第一个Go程序

以传统的Hello World”为例,开始Go语言编程之旅。

 

package main

import "fmt"

func main() {
fmt.Println("Hello 世界")
}

 

 代码解读:

每个Go源文件都以一条package声明语句开始,表示该源文件属于哪个包。包类似于其它语言的库或模块。这个例子为package mainmain包比较特殊,它定义了一个独立可执行的程序,而不是库。

紧接着是一系列导入包语句,用于导入该程序所依赖的包。由于本示例程序用到了Println()函数,所以需要导入该函数所属的fmt包。需要注意的是,不能包含在源代码中没有用到的包,否则Go编译器会报编译错误。

main包,有并且仅有一个main( )函数,是Go程序执行的入口。在main()函数中调用Println()函数打印输出 Hello,世界。我们特意使用了中文“世界”,这意味着Go语言原生支持Unicode,可以处理全世界任何语言的文本。另外,Go语句不需要加分号表示语句结束。在Go语言中,所有函数以关键字func开头。一个常规的函数定义包含以下部分:

func 函数名(参数列表)(返回值列表){

    //函数体

}

 main函数既没有参数,也没有返回值。

Go代码注释与C语言保持一致,同时支持以下两种用法:

//行注释

/*

块注释即多行注释

*/

演示go build go install go run命令,并比较其区别。

go build 编译包,并且在当前目录下生成可执行文件

go run 直接运行,但命令后跟的是文件,而不是目录()

go install 会在src同级目录下的package目录下生成.a包文件,在同级的bin目录生成可执行文件。这样可以在任意目录直接执行程序。

1.3 项目管理

以一个简单的计算器程序为例演示如何使用liteIDE开发和管理项目。如果需要管理多个项目,个人认为多个项目共用一个src目录比较方便。使用liteIDE打开$GOPATH目录。在src目录下创建计算器程序项目,目录组织如下:

godev

  |->bin

  |->pkg

 |->src

     |->其它项目...

     |->mycalc

          |->main

              |->main.go

          |->math

              |->add.go

              |->sub.go

          |->math2

              |->mul.go

main.go

package main

import (
    "fmt"
    "mycalc/math"
    "mycalc/math2"
)

func main() {
    fmt.Println("请输入两个整数:")
    var a, b int
    fmt.Scanf("%d %d", &a, &b)
    fmt.Println(a, "+", b, "=", math.Add(a, b))
    fmt.Println(a, "-", b, "=", math.Sub(a, b))
    fmt.Println(a, "*", b, "=", math2.Mul(a, b))

}

add.go代码清单

package math

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

sub.go代码清单

package math

func Sub(a int, b int) int {
    return a - b
}

mul.go代码清单  

package math2

func Mul(a int, b int) int {
    return a * b
}

注意:需要被外部使用的AddSubMul函数首字母大写。