Go 语言是一个开源的编程语言,强调简单、并发和高效。本文将详细介绍 Go 语言的基础概念,包括包、函数、语句和注释的使用。
在 Go 语言中,包是组织代码的基本单位。每个 Go 源文件都属于一个包。包可以包含函数、变量、类型等,通过包的划分,可以实现代码的模块化和复用。
每个 Go 源文件必须以 package
声明开头,指定该文件所属的包名。
package main // 表示该文件属于 main 包
import "fmt" // 引入 fmt 包,用于格式化输出
func main() {
fmt.Println("Hello, World!")
}
使用 import
关键字导入其他包,多个包可以用小括号括起来。
import (
"fmt"
"math"
)
包中的标识符(如变量、常量、类型、函数等)如果希望被其他包访问,必须以大写字母开头。这称为导出(exported)。
package mathutil
// Exported function
func Add(a, b int) int {
return a + b
}
// Unexported function
func subtract(a, b int) int {
return a - b
}
函数是 Go 语言中的基本代码结构,通过 func
关键字定义。函数可以有参数和返回值。
package main
import "fmt"
// 无参数,无返回值函数
func sayHello() {
fmt.Println("Hello, World!")
}
// 有参数,有返回值函数
func add(a int, b int) int {
return a + b
}
func main() {
sayHello()
sum := add(2, 3)
fmt.Println("Sum:", sum)
}
Go 语言的函数可以返回多个值。
func swap(a, b int) (int, int) {
return b, a
}
func main() {
x, y := swap(1, 2)
fmt.Println(x, y) // 输出:2 1
}
函数的返回值可以被命名,并在函数体内直接使用。
func divide(a, b float64) (quotient float64, err error) {
if b == 0 {
err = fmt.Errorf("division by zero")
return
}
quotient = a / b
return
}
变量通过 var
关键字声明,或者使用简短声明方式 :=
。
var name string = "Alice"
age := 30
Go 语言支持 if-else
语句,用于条件判断。
if age > 18 {
fmt.Println("Adult")
} else {
fmt.Println("Minor")
}
Go 语言只有 for
一种循环语句,支持三种形式:传统形式、条件形式和无限循环形式。
// 传统形式
for i := 0; i < 10; i++ {
fmt.Println(i)
}
// 条件形式
i := 0
for i < 10 {
fmt.Println(i)
i++
}
// 无限循环
for {
fmt.Println("Hello")
}
switch
语句用于多条件判断,支持省略 break
。
switch day := 3; day {
case 1:
fmt.Println("Monday")
case 2:
fmt.Println("Tuesday")
default:
fmt.Println("Other day")
}
以 //
开头,适用于简短的说明。
// 这是一个单行注释
var name = "Alice" // 声明变量 name
以 /*
开头,以 */
结尾,适用于较长的说明。
/*
这是一个多行注释
可以跨越多行
*/
var age = 30
用于生成文档的注释,通常放在包、函数、类型前面。
// Package mathutil 提供基本的数学运算功能
package mathutil
// Add 返回两个整数的和
func Add(a, b int) int {
return a + b
}
// Package main 是程序的入口包
package main
import (
"fmt"
"errors"
)
// User 表示一个用户
type User struct {
Name string
Age int
}
// NewUser 创建一个新的 User 实例
func NewUser(name string, age int) (*User, error) {
if age < 0 {
return nil, errors.New("age cannot be negative")
}
return &User{Name: name, Age: age}, nil
}
func main() {
// 创建用户
user, err := NewUser("Alice", 30)
if err != nil {
fmt.Println("Error:", err)
return
}
// 打印用户信息
fmt.Printf("User: %s, Age: %d\n", user.Name, user.Age)
// 交换两个整数
x, y := 1, 2
x, y = y, x
fmt.Printf("Swapped: x=%d, y=%d\n", x, y)
}
本文介绍了 Go 语言的基础概念,包括包的使用和导入、函数的定义和调用、常见的语句如变量声明、条件语句、循环语句和 switch
语句,以及注释的使用和最佳实践。这些基础知识是学习 Go 语言的起点,掌握这些概念后,可以继续深入学习 Go 的并发编程、接口和反射等高级特性。
原文链接:codingdict.net