Go 语言教程


Go语言教程

Go语言是一种开源的,快速的,编译型的系统级编程语言。它具有内存管理、垃圾回收、并发等特性。

本教程针对Go语言初学者,介绍Go语言的基础语法、数据类型与控制流等基本概念。

安装Go语言环境

在开始学习Go语言前,首先需要安装Go语言的开发环境。Go的官方网站提供了免费的下载和安装访问:https://golang.org/dl/

下载并安装完后,在命令行中运行以下命令检查是否安装成功:

go version

如果显示Go的版本号,则表示安装成功。

基本语法

Hello World

我们先从一个最简单的例子Hello World开始,这是最基础而且最重要的例子,它向我们展示了如何输出一行文本到控制台。

package main
import "fmt"

func main() {
    fmt.Println("Hello World")
}

这是Go语言的基本“程序”,它有三部分组成:

  • 包声明:package main 声明了该文件属于哪个包。在Go语言中,一般将代码放在package main中,表示该程序是一个可独立执行的程序,而不是一个库。
  • 引入依赖:import “fmt” 告诉Go编译器我们需要使用fmt包的代码。
  • 函数声明:func main() 是Go语言的入口函数,程序启动后会默认执行该函数。

变量与常量

Go语言支持声明变量与常量。变量是程序中的一个基本组成部分,常量则指程序中值不可变的数据类型。

var a int = 1         // 声明变量a,类型为int,初始值为1 
var b, c int = 2, 3   // 声明变量b、c,类型为int,初始值为2, 3
var d = false         // 通过值的类型自动推断变量d的类型为bool,初始值为false
e := "Hello World"    // 通过 := 自动推断声明变量e,类型为string,初始值为"Hello World"
const PI = 3.1415926  // 声明常量PI,值为3.1415926,这里不需要指定数据类型

在Go语言中,一般使用var关键字声明变量,如果不想指定变量的类型,可以使用:=自动推断变量类型。常量一般使用const关键字声明。

数据类型

Go语言支持的基本数据类型有:

类型 说明
bool 布尔型
int 整型
float 浮点型
complex 复数类型
string 字符串类型

其中int类型包含int8、int16、int32、int64。float类型包含float32、float64。complex类型由实部和虚部组成,使用complex64或complex128类型。

控制流

Go语言支持的控制流有:

  • if条件语句
if age > 18 {
    fmt.Println("You are an adult")
} else {
    fmt.Println("You are a teenager")
}
  • for循环语句
for i := 0; i < 10; i++ {
    fmt.Println(i)
}
  • switch多分支条件语句
switch dayOfWeek {
case "Monday":
    fmt.Println("Today is Monday")
case "Tuesday":
    fmt.Println("Today is Tuesday")
default:
    fmt.Println("Unknown day of week")
}
  • defer语句
defer fmt.Println("done")

defer语句可以在函数执行完成后执行一些操作(关闭文件、释放资源等)。

并发

Go语言天生支持并发编程,在语言层面提供了goroutine和channel这两个机制,可以很方便地实现并发程序。

goroutine是轻量级的线程,go关键字加上一个函数就可以启动一个goroutine:

go func() {
    fmt.Println("New goroutine")
}()

channel是一种消息通信机制,它可以用于goroutine之间的通信,实现数据共享,同步执行等功能:

ch := make(chan int)
go func() {
    ch <- 1
}()
fmt.Println(<-ch)

总结

本教程介绍了Go语言的基础语法、变量和常量、数据类型和控制流等基本概念,同时也简单介绍了Go语言中天生支持的并发机制。这只是Go语言的冰山一角,欢迎大家深入学习!