第1课_Go语言基础语法
热度🔥:85 免费课程
授课语音
掌握Go语言的基本语法规则与数据类型
Go语言是一种现代化的、静态类型的编程语言,具有高效、简单、易用的特点。掌握其基本语法规则和数据类型是学习Go语言开发的第一步。
1. Go语言的基本语法规则
1.1 代码结构
- 每个Go文件必须以
package
声明开头,表示该文件所属的包。 - 程序的入口是
main
函数,必须位于main
包中。 - 使用
import
导入其他包,例如标准库或第三方包。
示例代码:
package main // 声明main包
import "fmt" // 导入fmt包用于格式化输出
// 主函数
func main() {
fmt.Println("Hello, Go!") // 输出一段文字
}
解释:
package main
声明当前文件属于main
包。import
导入fmt
包以使用其格式化输出函数。func main()
是程序的入口。
1.2 标识符命名规则
- 标识符必须以字母或下划线
_
开头,后面可以跟字母、数字或下划线。 - 大写字母开头的标识符可导出(对其他包可见),小写字母开头的标识符仅对当前包可见。
1.3 关键字
Go语言中有以下 25 个关键字,不可用作变量名或函数名:
break case chan const continue default defer else fallthrough for
func go goto if import interface map package range return select
struct switch type var
1.4 注释
- 单行注释:以
//
开头。 - 多行注释:以
/* */
包裹。
示例代码:
// 这是单行注释
/*
这是多行注释
可以用于详细说明
*/
2. Go语言的数据类型
Go语言的数据类型分为基础类型、复合类型和特殊类型。
2.1 基础类型
包括以下几种:
- 布尔型(Boolean):使用
bool
表示,值为true
或false
。 - 整数类型(Integer):
- 有符号:
int
、int8
、int16
、int32
、int64
- 无符号:
uint
、uint8
、uint16
、uint32
、uint64
- 有符号:
- 浮点数类型(Floating-Point):
float32
、float64
- 复数类型(Complex Numbers):
complex64
、complex128
- 字符串(String):使用
string
表示。
示例代码:
package main
import "fmt"
func main() {
// 布尔型
var isGoAwesome bool = true
fmt.Println("Is Go awesome?", isGoAwesome) // 输出布尔值
// 整数型
var age int = 30
fmt.Println("Age:", age)
// 浮点型
var pi float64 = 3.14159
fmt.Println("Pi:", pi)
// 字符串
var greeting string = "Hello, Go!"
fmt.Println(greeting)
}
解释:
- 使用
var
声明变量并指定类型。 - 默认值为
false
(布尔型)、0
(数值型)和空字符串(字符串型)。
2.2 复合类型
包括以下几种:
- 数组(Array):固定长度的相同类型元素的集合。
- 切片(Slice):动态长度的数组视图。
- 映射(Map):键值对集合。
- 结构体(Struct):自定义数据类型的集合。
示例代码:
package main
import "fmt"
func main() {
// 数组
var arr [3]int = [3]int{1, 2, 3}
fmt.Println("Array:", arr)
// 切片
slice := []int{4, 5, 6}
fmt.Println("Slice:", slice)
// 映射
var dict map[string]int = map[string]int{"Alice": 25, "Bob": 30}
fmt.Println("Map:", dict)
// 结构体
type Person struct {
Name string
Age int
}
person := Person{"Charlie", 28}
fmt.Println("Struct:", person)
}
解释:
- 数组长度固定,切片可动态扩展。
- 映射用于存储键值对。
- 结构体用于组织复杂数据。
2.3 特殊类型
- 指针(Pointer):存储变量的内存地址。
- 接口(Interface):定义一组方法签名,用于实现多态。
- 函数类型(Function):可以作为参数或返回值。
示例代码:
package main
import "fmt"
func main() {
// 指针
x := 42
ptr := &x
fmt.Println("Pointer:", ptr, "Value:", *ptr)
// 接口
type Greeter interface {
Greet()
}
type Person struct {
Name string
}
func (p Person) Greet() {
fmt.Println("Hello,", p.Name)
}
var g Greeter = Person{"Diana"}
g.Greet()
// 函数类型
add := func(a int, b int) int {
return a + b
}
fmt.Println("Addition:", add(2, 3))
}
解释:
- 使用
&
获取变量地址,*
解引用指针。 - 接口实现多态,函数类型实现更灵活的逻辑。
3. 总结
- 基本语法规则:包括包声明、标识符规则、注释和关键字。
- 基础数据类型:布尔、整数、浮点、字符串。
- 复合数据类型:数组、切片、映射、结构体。
- 特殊数据类型:指针、接口、函数类型。
- Go语言强调简洁、清晰的代码风格,为开发者提供了灵活且强大的工具。