Go语言中的基础声明关键字包括package
、import
、var
、const
、type
和func
。这些关键字是构建Go程序的基础,用于声明包、变量、常量、类型和函数。
包是Go语言代码组织和重用的基本单位:
// 声明当前文件所属的包
package main // 可执行程序的入口包
package models // 普通包
包的特点:
// 单个导入
import "fmt"
// 分组导入(推荐)
import (
"fmt"
"strings"
"time"
)
// 包重命名
import str "strings"
// 点号导入(不推荐)
import . "fmt"
// 下划线导入(仅执行init)
import _ "github.com/go-sql-driver/mysql"
// 单个变量声明
var name string
var age int = 25
// 多个变量声明
var (
name string
age int
city string = "Beijing"
)
// 简短声明(函数内部)
name := "Tom"
// 单个常量
const PI = 3.14159
// 多个常量
const (
StatusOK = 200
StatusError = 500
)
const (
Sunday = iota // 0
Monday // 1
Tuesday // 2
Wednesday // 3
)
const (
_ = 1 << (10 * iota)
KB // 1024
MB // 1048576
GB // 1073741824
)
// 定义新类型
type MyInt int
type User struct {
Name string
Age int
}
// 定义接口
type Reader interface {
Read(p []byte) (n int, err error)
}
// 类型别名
type MyString = string // MyString是string的别名
type Animal struct {
Name string
}
type Dog struct {
Animal // 匿名嵌入
Breed string
}
type Reader interface {
Read(p []byte) (n int, err error)
}
type Writer interface {
Write(p []byte) (n int, err error)
}
type ReadWriter interface {
Reader
Writer
}
// 普通函数
func Add(x, y int) int {
return x + y
}
// 多返回值
func Divide(x, y float64) (float64, error) {
if y == 0 {
return 0, errors.New("divide by zero")
}
return x / y, nil
}
type Rectangle struct {
Width, Height float64
}
// 值接收者的方法
func (r Rectangle) Area() float64 {
return r.Width * r.Height
}
// 指针接收者的方法
func (r *Rectangle) Scale(factor float64) {
r.Width *= factor
r.Height *= factor
}
// 函数类型定义
type HandlerFunc func(string) error
// 函数作为参数
func process(handler HandlerFunc, data string) error {
return handler(data)
}
func Counter() func() int {
count := 0
return func() int {
count++
return count
}
}
// 使用闭包
counter := Counter()
fmt.Println(counter()) // 1
fmt.Println(counter()) // 2
基础声明关键字是Go语言的核心组成部分:
掌握这些关键字的正确使用是编写优质Go代码的基础。建议: