GO入门教程

既然学一门语言首先我们就是要了解这个语言可以干什么,有什么作用,其优势在哪?

喜欢自己看资料的同学我推荐这个网站:Go 语言结构 | 菜鸟教程 (runoob.com)写的特别详细。

下面是我自己对这个语言的一些理解和想法(其中内容也基本上都是网站里面的内容)

Go 语言特色

  • 简洁、快速、安全
  • 并行、有趣、开源
  • 内存管理、数组安全、编译迅速

Go 语言用途

Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。

对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。

Go 语言环境安装

安装包下载地址为:https://golang.org/dl/。

如果打不开可以使用这个地址:https://golang.google.cn/dl/。

我就简要介绍一下在 linux操作系统下的go语言环境安装。

linux的基本命令的学习在我的博客里面也有,后续会更新出来。

1、首先我们先下载二进制包

#解压文件包
tar -C /usr/local -xzf +包名
#然后我们将 /usr/local/go/bin 目录添加至 PATH 环境变量
export PATH=$PATH:/usr/local/go/bin
#这里我建议就是直接将命令添加到配置文件中,直接加到末尾即:/etc/profile
vim 编辑器保存后退出 
i :直接按i是编辑模式
:wq :保存并退出(这个在编辑模式下按ESC之后)
#退出后执行配置文件(二选一)
source ~/.bash_profile
source /etc/profile
#然后我们就可以开始测试环境是否安装成功
go version #查看安装的go版本
[root@iZf8zaekpumjn6q1vv1fmiZ ~]# go version
\go version go1.16.6 linux/amd64

然后我们选择一个路径存放我们的go文件

#在一个适合的路径下 touch +文件名就是创建一个文件 vi 进入这个文件的编辑模式
[root@iZf8zaekpumjn6q1vv1fmiZ learn_go]# touch main.go
[root@iZf8zaekpumjn6q1vv1fmiZ learn_go]# vi main.go
[root@iZf8zaekpumjn6q1vv1fmiZ learn_go]# ls
main.go
#我们可以直接运行也可以先 go build main.go 先生成二进制文件再执行
#方法一
[root@iZf8zaekpumjn6q1vv1fmiZ learn_go]# go run main.go
Hello, World!
#方法二
root@iZf8zaekpumjn6q1vv1fmiZ learn_go]# go build main.go
[root@iZf8zaekpumjn6q1vv1fmiZ learn_go]# ls
main  main.go
[root@iZf8zaekpumjn6q1vv1fmiZ learn_go]# ./main
Hello, World!

GO语言结构

从最基本的代码来解析一下

package main

import "fmt"
//特别注意 { 不能单独成行
func main() {
   /* 这是我的第一个简单的程序 */
   fmt.Println("Hello, World!")
}

1.第一行定义了包名,告诉你这个文件属于哪个包下的文件,然后package main 表示一个可以独立执行的程序,每个Go应用程序都包含一个名为main的包。

2.下一行 import “fmt” 告诉 Go 编译器这个程序需要使用 fmt 包(的函数,或其他元素),fmt 包实现了格式化 IO(输入/输出)的函数。

3。每个可执行文件都要包含一个main函数,一般情况下最先开始执行的函数(如果有init()函数则会先执行这个函数)。

4./* */这个是注释代码段的,//注释代码行。

5.fmt.println是输出并换行

6.标识符大写对外部包的代码是可见的,标识符小写包外是不可见的,在本包包内是可见的并可用的。

Go基础语法

Go 程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号。

在 Go 程序中,一行代表一个语句结束。

每个语句不需要像 C 家族中的其它语言一样以分号 ; 结尾,因为这些工作都将由 Go 编译器自动完成。

fmt.Println("Hello, World!")
fmt.Println("Hello, World01!")

注释

**注意:**我们在写程序的时候必要的注释是特别重要的,不但可以让自己的程序的可读性增强,也便于我们查找错误。

标识符

标识符用来命名变量、类型等程序实体。一个标识符实际上就是一个或是多个字母(AZ和az)数字(0~9)、下划线_组成的序列,但是第一个字符必须是字母或下划线而不能是数字。

mahesh   kumar   abc   move_name   a_123
myname50   _temp   j   a23b9   retVal

以下是无效的标识符:

  • 1ab(以数字开头)
  • case(Go 语言的关键字)
  • a+b(运算符是不允许的)

字符串连接

字符串的连接我们可以通过+号来完成

举个例子

package main
import "fmt"
func main() {
    fmt.Println("LO" + "VE")
}
[root@iZf8zaekpumjn6q1vv1fmiZ learn_go]# go run main.go
LOVE
//输出LOVE说明连接成功

关键字

这个我就不详细列出来了,有需要的同学可以从百度中查找

Go语言的空格

变量的声明要用空格个隔开

var a int 

格式化字符串

//就拿教程的举个例子
package main

import (
    "fmt"
)

func main() {
   // %d 表示整型数字,%s 表示字符串
    var stockcode=123
    var enddate="2020-12-31"
    var url="Code=%d&endDate=%s"
    //Go 语言中使用 fmt.Sprintf 格式化字符串并赋值给新串
    //格式化字符串:将指定的字符串转换为想要的输出格式说白了就是固定的值替换转义字符。
    var target_url=fmt.Sprintf(url,stockcode,enddate)
    fmt.Println(target_url)
}
[root@iZf8zaekpumjn6q1vv1fmiZ learn_go]# go run main.go
Code=123&endDate=2020-12-31