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语言的冰山一角,欢迎大家深入学习!