大家好,今天咱们来学习
Go 语言入门实践 —— 基础语法与常用特性解析
- 引言
Go 语言,也被称为 Golang,是由 Google 开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。它以其简洁的语法、高效的性能和原生支持并发编程而受到开发者的喜爱。本笔记将带您通过实践来了解 Go 语言的基础语法和常用特性。 - 环境配置
在开始 Go 语言编程之前,首先需要安装 Go 开发环境。可以从 Go 官方网站 下载对应操作系统的安装包。安装完成后,设置环境变量GOPATH
和GOROOT
,并确保PATH
环境变量包含 Go 的安装路径。
# 查看安装的 Go 版本
go version
- Hello World
让我们从经典的 “Hello World” 程序开始,这个在咱们的MarsCode AI 练中学也有源码
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
保存为 hello.go
并运行:
go run hello.go
- 基础语法
(1)变量声明
Go 语言中的变量声明有多种方式,可以使用 var
关键字,也可以使用短变量声明语法 :=
。
var a = "initial"
var b, c int = 1, 2
d := true
(2)数据类型 Go 语言有几种基本数据类型,包括整型、浮点型、布尔型和字符串。
var i int
var f float32
var b bool
var s string
(3)控制结构
Go 语言提供了 if
、switch
、for
等控制结构。
if 7%2 == 0 {
fmt.Println("7 is even")
} else {
fmt.Println("7 is odd")
}
switch os := runtime.GOOS; os {
case "darwin":
fmt.Println("OS X.")
case "linux":
fmt.Println("Linux.")
default:
fmt.Printf("%s.\n", os)
}
(4)数组与切片 数组是具有固定长度的数据结构,而切片是动态的、可伸缩的数据结构。
var a [2]string
a[0] = "Hello"
a[1] = "World"
fmt.Println(a[0], a[1])
fmt.Println(a)
s := []int{2, 3, 5, 7, 11, 13}
fmt.Println("s ==", s)
- 常用特性
(1)并发编程
Go 语言通过 goroutines 和 channels 提供了并发编程的支持。
func say(s string) {
for i := 0; i < 5; i++ {
time.Sleep(100 * time.Millisecond)
fmt.Println(s)
}
}
func main() {
go say("world")
say("hello")
}
(2)错误处理
Go 语言通过内置的错误类型和 defer
、panic
、recover
机制来处理错误。
func main() {
defer fmt.Println("world")
fmt.Println("hello")
}
func panicRecover() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Recovered in f", r)
}
}()
panic("a problem")
}
(3)接口与类型断言
Go 语言中的接口是一种类型,它定义了一组方法。类型断言用于提取接口的底层值。
type I interface {
M()
}
type T struct {
S string
}
func (t T) M() {
fmt.Println(t.S)
}
func main() {
var i I = T{"hello"}
i.M()
}
- 总结
该笔记通过实践示例,带大家了解了 Go 语言的基础语法和常用特性。Go 语言的简洁和高效使其成为现代编程语言中的佼佼者。通过这些基础知识的掌握,您将为更深入的学习和实践 Go 语言打下坚实的基础。
二、结语
通过本次实践,我们不仅学习了 Go 语言的基本语法,还体验了其强大的并发编程和错误处理特性。在未来的编程旅程中,继续探索 Go 语言的更多高级特性,将有助于我们成为一名更全面的开发者。记住,编程是一门实践课,不断的编码实践是提高编程技能的最佳途径。