Go 语言入门指南
基础语法和常用特性解析
Go语言是一门开源的编程语言,以其简洁、高效、并发支持等特性而受到广泛关注。本文将对Go语言的基础语法和常用特性进行解析,帮助初学者快速入门。
目录
1. Hello, Go!
让我们从一个简单的示例开始:Hello World!
package main
import "fmt"
func main() {
fmt.Println("Hello, Go!")
}
这个示例展示了Go语言的基本结构:package、import 和 func。fmt 是一个格式化输出的包,通过Println函数输出文本。
2. 变量与常量
Go语言中定义变量使用关键字var,常量使用关键字const。
package main
import "fmt"
func main() {
var message string
message = "Hello, Variable!"
const pi = 3.14159
fmt.Println(message)
fmt.Println(pi)
}
3. 数据类型
Go语言具有丰富的数据类型,包括基本类型(整型、浮点型、布尔型等)和复合类型(数组、切片、映射等)。
package main
import "fmt"
func main() {
var num int = 42
var isTrue bool = true
var floatNum float64 = 3.14
var arr [3]int
arr[0] = 1
arr[1] = 2
arr[2] = 3
var slice []int = []int{1, 2, 3}
fmt.Println(num, isTrue, floatNum)
fmt.Println(arr, slice)
}
4. 控制流程
Go语言支持常见的控制流程语句,如if、for、switch等。
package main
import "fmt"
func main() {
age := 18
if age >= 18 {
fmt.Println("成年人")
} else {
fmt.Println("未成年人")
}
for i := 1; i <= 5; i++ {
fmt.Println(i)
}
fruit := "apple"
switch fruit {
case "apple":
fmt.Println("这是一个苹果")
case "banana":
fmt.Println("这是一个香蕉")
default:
fmt.Println("未知水果")
}
}
5. 函数
在Go语言中,函数是一等公民。可以通过关键字func来定义函数,支持多返回值。
package main
import "fmt"
func add(a, b int) int {
return a + b
}
func swap(x, y string) (string, string) {
return y, x
}
func main() {
sum := add(3, 5)
fmt.Println("3 + 5 =", sum)
a, b := "Hello", "World"
a, b = swap(a, b)
fmt.Println(a, b)
}
6. 包和模块
Go语言通过包来组织代码,一个文件所在的目录决定了它所属的包。可以使用import关键字引入其他包。
package main
import (
"fmt"
"math/rand"
)
func main() {
fmt.Println("随机数:", rand.Intn(100))
}
7. 并发编程
Go语言天生支持并发,通过goroutine和channel实现。
package main
import (
"fmt"
"time"
)
func printNumbers() {
for i := 1; i <= 5; i++ {
fmt.Println(i)
time.Sleep(100 * time.Millisecond)
}
}
func printLetters() {
for char := 'a'; char <= 'e'; char++ {
fmt.Println(string(char))
time.Sleep(100 * time.Millisecond)
}
}
func main() {
go printNumbers()
go printLetters()
time.Sleep(2 * time.Second)
}
8. 标准库
Go语言拥有丰富的标准库,涵盖了网络、文件操作、文本处理等功能。
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, Web!")
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
9. 错误处理
Go语言鼓励显式处理错误,通过返回错误类型来处理异常情况。
package main
import (
"fmt"
"os"
)
func main() {
file, err := os.Open("myfile.txt")
if err != nil {
fmt.Println("无法打开文件:", err)
return
}
defer file.Close()
// 处理文件
}
10. 高级特性
Go语言还有许多高级特性,如接口、反射、垃圾回收等,超出了本文范围,可以在进一步学习时深入了解。
本文介绍了Go语言的基础
语法和常用特性,希望能帮助你快速入门。继续学习和实践,你将能够在Go语言中编写出高效、可维护的程序。Happy Coding!