Loading

绪论

一、绪论

1 Go语言介绍

Go 即Golang,是Google公司2009年11月正式对外公开的一门编程语言。

Go是静态强类型语言,是区别于解析型语言的编译型语言(静态:类型固定 强类型:不同类型不允许直接运算)。

解析型语言——源代码是先翻译为中间代码,然后由解析器对代码进行解释执行。

编译型语言——源代码编译生成机器语言,然后由机器直接执行机器码即可执行。

2 Go语言特性

  • 跨平台的编译型语言

  • 交叉编译(在win平台可编译出mac平台的可执行文件)

  • 语法接近C语言

  • 管道(channel),切片(slice),并发(routine)

  • 有垃圾回收的机制

  • 支持面向对象和面向过程的编程模式

3 go适合做什么

  • 服务端开发
  • 分布式系统,微服务
  • 网络编程
  • 区块链开发
  • 内存KV数据库,例如boltDB、levelDB
  • 云平台

4 下载和安装

开发环境:

IDE:

  • GoLand

  • vscode

5 配置GOPATH和GOROOT

  • GOPATH:代码存放路径,该目录下有三个文件夹(如果没有,要手动创建),
    windows和mac默认在用户名下的go文件夹(GOPATH="/Users/用户名/go"),所有代码必须写在这个路径下的src文件夹下,否则无法编译,可以手动修改。
-src——源码(包含第三方的和自己项目的)
-bin——编译生成的可执行程序
-pkg——编译时生成的对象文件
  • GOROOT:go开发工具包的安装路径,默认:C:\go

    将GOROOT下的bin路径加入环境变量(默认已处理),这样任意位置敲 go 都能找到该命令

6 命令介绍

直接在终端中输入 go help 即可显示所有的 go 命令以及相应命令功能简介,主要有下面这些:

  • build: 编译包和依赖
  • clean: 移除对象文件(go clean :删除编译的可执行文件)
  • doc: 显示包或者符号的文档
  • env: 打印go的环境信息
  • bug: 启动错误报告
  • fix: 运行go tool fix
  • fmt: 运行gofmt进行格式化(go fmt :自动将代码格式)
  • generate: 从processing source生成go文件
  • get: 下载并安装包和依赖(go get github.com/astaxie/beego:下载beego框架)
  • install: 编译并安装包和依赖(go install 项目名:会将go编译,并放到bin路径下)
  • list: 列出包
  • run: 编译并运行go程序
  • test: 运行测试
  • tool: 运行go提供的工具
  • version: 显示go的版本
  • vet: 运行go tool vet

6.1 build 和 run 命令

就像其他静态类型语言一样,要执行 go 程序,需要先编译,然后在执行产生的可执行文件。go build 命令就是用来编译 go程序生成可执行文件的。但并不是所以的 go 程序都可以编译生成可执行文件的, 要生成可执行文件,go程序需要满足两个条件:

  • 该go程序需要属于main包
  • 在main包中必须还得包含main函数

也就是说go程序的入口就是 main.main, 即main包下的main函数, 例子(test.go):

编译hello.go,然后运行可执行程序:

$ go run test.go   # 将会生成可执行文件 test
$ ./test           # 运行可执行文件
Hello, World!

上面就是 go build 的基本用法,另外如果使用 go build 编译的不是一个可执行程序,而是一个包,那么将不会生成可执行文件。

go run 命令可以将上面两步并为一步执行(不会产生中间文件)。

$ go run test.go
Hello, World!

上面两个命令都是在开发中非常常用的。

此外 go clean 命令,可以用于将清除产生的可执行程序:

$ go clean    # 不加参数,可以删除当前目录下的所有可执行文件
$ go clean hello.go  # 会删除对应的可执行文件

6.2 get 命令

这个命令同样也是很常用的,我们可以使用它来下载并安装第三方包, 使用方式:

go get src

从指定源上面下载或者更新指定的代码和依赖,并对他们进行编译和安装,例如我们想使用 beego 来开发web应用,我们首先就需要获取 beego:

go get github.com/astaxie/beego

这条命令将会自动下载安装 beego 以及它的依赖,然后我们就可以使用下面的方式使用:

package main

import "github.com/astaxie/beego"   # 这里需要使用 src 下的完整路径

func main() {
    beego.Run()
}

7 第一个go程序

// go语言的注释

/*多行

注释*/

package main // 声明包名是main,每一个go文件都必须属于某一个包

import "fmt" // 导入内置包

func main() {  // func函数关键字,定义main函数 类似c语言,编译型语言需要有入口函数: main包下的main函数
	fmt.Println("hello,world!")  // 打印函数
}

bulid命令编译,再执行exe:

image

或者使用run命令,编译并执行:

go run 1.go
posted @ 2021-10-22 13:50  yyyz  阅读(129)  评论(0编辑  收藏  举报