Go 语言入门指南:基础语法和常用特性解析(上) | 青训营

83 阅读6分钟

0. 前面的话

本文章为Go语言初学者的帮助教程,旨在帮助读者快速掌握Go编程语言的基础知识和常用特性。

Go语言,也被称为Golang,是一门由Google开发的现代编程语言,以其简洁、高效和强大的特性受到了广泛的关注和应用。

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

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

1. 安装和设置

在学习Go语言之前,首先需要进行安装和设置,以确保你的开发环境能够正确地支持Go编程。以下是详细的步骤和注意事项:

  1. 下载Go安装包

    前往Go官方网站(go.dev/dl/)下载适合自己操作系统的安装包。Go支持多种操作系统,包括Windows、macOS和各种Linux发行版。选择与你操作系统和架构匹配的安装包。

    1.png

  2. 安装Go

    根据你的操作系统选择的安装包,进行相应的安装步骤。在大多数情况下,只需双击安装包并按照提示进行操作即可完成安装。

  3. 设置环境变量

    安装完成后,需要设置Go的环境变量,以便在终端或命令行中使用Go命令。在Windows系统中,你需要将Go的安装目录(通常是 C:\Go)添加到系统的 PATH 环境变量中。

    在macOS和Linux系统中,你需要将Go的安装目录添加到你的shell配置文件(如 .bashrc.zshrc)中。设置好环境变量后,你就可以在终端中运行Go命令了。

  4. 验证安装

    打开终端或命令行,输入 go version 命令,查看Go的版本信息。如果显示了正确的版本号,说明安装成功。

    2.png

  5. 创建工作目录

    在开始编写Go代码之前,你可能希望创建一个专门用于存放Go项目的工作目录。在这个目录中,你可以组织你的代码文件、依赖和其他资源。

  6. 选择代码编辑器或集成开发环境(IDE)

    选择一个适合你的代码编辑器或IDE,以便开始编写Go代码。一些流行的选择包括Visual Studio Code(VSCode)GoLand等。

  7. Hello World!

    现在,你已经完成了Go的安装和设置,可以尝试编写你的第一个Go程序了。创建一个新的Go源文件,命名为 hello.go,然后输入以下代码:

    package main
    ​
    import "fmt"func main() {
        fmt.Println("Hello, World!")
    }
    

    保存文件后,在终端中进入文件所在目录,运行以下命令:

    go run hello.go
    

    如果看到输出了 Hello, World!,那么恭喜你,你已经成功地安装、设置和运行了你的第一个Go程序!

安装和设置是开始学习任何编程语言的第一步,正确地完成这些步骤能够为你的Go编程之旅奠定坚实的基础。在接下来的学习中,你将逐渐了解更多关于Go语言的基础知识和特性。

2. 基础语法

2.1. 包和导入

  • 在Go语言中,其程序由包(Packages)组成,每个文件都属于一个包。
  • 其中main 包是程序的入口,包含了 main() 函数。
  • 使用 import 关键字导入其他包。

在上述的Hello.go的程序中,所导入的fmt包实现了格式化 IO(输入/输出)的函数。

package main
​
import "fmt"func main() {
    fmt.Println("Hello, World!")
}

2.2. 变量和数据类型:

  • 使用 var 关键字声明变量,Go会自动推断变量类型。
  • 基本数据类型包括整型、浮点型、布尔型、字符串等。
  • 使用 := 简化变量声明和赋值。

对于Go语言的变量声明,相比于传统语言的变量声明,Go语言最大的特点是可以选择省略变量类型,编译器可以根据右侧的值自动推断出变量的类型,这极大的方便了我们的开发,同时由于其变量声明有别于其他语言的变量类型+变量名,Go语言是相反的,因此省略变量类型的写法也可以方便其他语言的程序员快速上手Go语言。

//指明变量类型的变量定义方法
var a string = "Hello, World!"
var b int = 19260817
var c bool = true//不指明变量类型的变量定义方法
var a = "Hello, World!"
var b = 19260817
var c = true//简化变量定义方法
a := "Hello, World!"
b := 19260817
c := true

2.3. 常量

  • 使用 const 关键字声明常量。
  • 常量的值在编译时确定,不能被修改。

Go语言中常量的声明与其他语言不太相同,需要使用const关键字替换var关键字,其他部分与变量相差不大。

const a string = "Hello, World!"
const b int = 19260817
const c bool = true

2.4. 控制流

  • 使用 ifelseswitch 进行条件判断。
  • 使用 for 进行循环,支持 forwhiledo-while 三种风格。
  • breakcontinue 用于循环控制。

对于分支语句if,Go语言和其他语言类似,唯一不同的是对于判断条件部分不需要用小括号包裹起来。而switch分支语句与其他语言略有不同,在Go语言中,不需要添加break,默认执行对应的case语句后退出。

//if-else用法示例
if 7 % 2 == 0 {
    fmt.Printlen("7 is even")
} else {
    fmt.Printlen("7 is odd")
}

//switch用法示例
a := 2
switch a {
    case 1:
        fmt.PrintIn("one")  
    case 2:
        fmt.PrintIn("two")
    case 3:
        fmt.Printin("three")
    case 45:
        fmt.Println("four or five")
    default:
        fmt.PrintIn("other")

而对于循环语句,Go语言中没有其他传统语言中的while循环,但其for循环功能十分强大,支持while循环的书写风格。

//传统 for 循环
for i := 1; i <= 10; i++ {
    fmt.Println(i)
}

// while 循环风格书写
i := 1
for i <= 10 {
    fmt.Println(i)
    i++
}

2.5. 函数

  • 使用 func 关键字定义函数,可以接收参数并返回值。
  • 支持多返回值。
  • 函数也可以作为一种类型,用于高阶函数的实现。

在Go语言中,使用func关键字声明一个函数,函数声明的语法与其他语言略有差异,与基本的变量定义相同,Go语言中,函数的返回类型置于函数名和传递参数之后,需要多加留意。

// 基本函数定义方法
func function_name( [parameter list] ) [return_types] {
   函数体
}

由于篇幅有限,本篇文章先就此打住,后续复合数据类型相关的知识还请见Go 语言入门指南:基础语法和常用特性解析(下),谢谢!