Hello, World
这是一个经典的 "Hello, World!" 程序,它是编程语言学习的第一步。在 Go 中,使用 fmt 包来打印文本。通过导入 fmt 包,我们可以使用 fmt.Println() 函数输出 "Hello, World!" 到终端。
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
变量和数据类型
这个示例演示了如何声明变量和初始化它们。Go 是静态类型语言,但可以使用简洁的 := 语法进行变量声明和初始化。在这里,我们声明了一个整数变量 num 和一个字符串变量 str,并将它们的值输出到终端。
package main
import "fmt"
func main() {
num := 10
str := "Hello, Go!"
fmt.Println("Number:", num)
fmt.Println("String:", str)
}
控制流程
Go 支持常见的控制流程结构,如条件语句 if。在这个示例中,我们根据 num 的值输出不同的结果。如果 num 大于零,打印 "The number is positive.",否则打印 "The number is non-positive."。
package main
import "fmt"
func main() {
num := 5
if num > 0 {
fmt.Println("Positive")
} else {
fmt.Println("Non-positive")
}
}
函数和包
函数是 Go 中的基本构建块,它们可以重复使用,提高代码的可维护性。在这个示例中,我们定义了一个名为 add 的函数,用于计算两个整数的和。我们还演示了如何导入外部包(math 包)并使用其函数计算平方根。
数组、切片和映射
数组、切片和映射是 Go 中常用的数据结构。在这个示例中,我们声明并初始化了一个整数切片 nums,然后使用切片操作创建了一个新的切片 sliced。同时,我们展示了如何声明并初始化一个映射 m。
结构体和方法
结构体是自定义的复合数据类型,可以包含多个字段。在这个示例中,我们定义了一个名为 Person 的结构体,表示人的基本信息。我们还在结构体上定义了方法 Info,用于输出人的姓名和年龄。
接口与多态
Go 支持接口,通过接口可以实现多态。接口是方法的集合,这些方法在不同的类型上执行相同的操作。在这个示例中,我们定义了接口 Shape,并在圆和矩形上实现了该接口的 Area 方法,展示了多态的概念。
并发与 goroutine
Go 内置了轻量级的并发支持,通过 goroutine 实现并发执行。在这个示例中,我们创建了两个 goroutine 分别打印数字和字母,通过 go 关键字同时执行它们。使用 time.Sleep 保证 goroutine 完成。