引言
Go语言是一种由Google开发的高效、简洁和并发支持良好的编程语言。本报告将介绍Go语言的基础语法和一些常用特性,并通过示例程序来说明这些概念。更具体地说,本报告记录了Go语言的基础知识,包括变量、数据类型、控制结构、函数,以及并发编程的基本概念。
1. 变量和数据类型
Go语言的变量声明非常简洁。使用 var关键字声明一个变量,然后跟上变量名和数据类型。例如:
var age int // 声明一个整数型变量age
age = 30 // 赋值
Go语言支持多种数据类型,包括整数、浮点数、字符串、布尔值等。示例如下:
var num int = 42
var pi float64 = 3.14
var name string = "Alice"
var isAdult bool = true
Go语言还支持隐式类型推断,可以根据赋值语句自动推断数据类型,如:
var num = 42 // 类型推断为int
var pi = 3.14 // 类型推断为float64
var name = "Alice" // 类型推断为string
2. 控制结构
2.1 条件语句
Go语言的条件语句使用if关键字。示例:
age := 25
if age >= 18 {
fmt.Println("成年人")
} else {
fmt.Println("未成年人")
}
2.2 循环结构
Go语言有for循环,它可以用于迭代数组、切片、映射等。示例:
for i := 0; i < 5; i++ {
fmt.Println(i)
}
3. 函数
Go语言使用func关键字定义函数。示例:
func add(a, b int) int {
return a + b
}
result := add(3, 4)
fmt.Println(result) // 输出7
函数可以返回多个值:
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("除数不能为0")
}
return a / b, nil
}
result, err := divide(10.0, 2.0)
if err != nil {
fmt.Println(err)
} else {
fmt.Println(result) // 输出5
}
4. 并发编程
Go语言内置了强大的并发支持,通过goroutine和channel实现。示例:
import (
"fmt"
"time"
)
func printNumbers() {
for i := 1; i <= 5; i++ {
fmt.Println(i)
time.Sleep(time.Millisecond * 500)
}
}
func printLetters() {
for letter := 'a'; letter <= 'e'; letter++ {
fmt.Printf("%c\n", letter)
time.Sleep(time.Millisecond * 500)
}
}
func main() {
go printNumbers() // 启动一个goroutine打印数字
go printLetters() // 启动一个goroutine打印字母
// 等待一段时间,以允许goroutines完成
time.Sleep(time.Second * 3)
}
这段程序会交替输出数字和字母,演示了Go语言的并发特性。
结论
本报告介绍了Go语言的基础语法和常用特性,包括变量、数据类型、控制结构、函数和并发编程。