Go 语言编程基础:顺序编程

Go 语言编程基础:顺序编程


1. 变量

1.1 变量声明

  • Go 语言中的变量声明使用 var 关键字。

  • 基本格式

    var name type
    
  • 示例

    var x int
    var y string
    

1.2 变量初始化

  • 声明变量的同时可以进行初始化:

    var x int = 10
    var y string = "Hello"
    
  • 使用 := 符号可以简化声明和初始化过程(仅用于函数内部):

    x := 10
    y := "Hello"
    

1.3 变量赋值

  • 已声明的变量可以通过赋值操作进行更新:

    x = 20
    y = "Go"
    

1.4 匿名变量

  • 匿名变量用 _ 表示,用于忽略不需要的返回值:

    _, err := someFunction()
    

2. 常量

2.1 字面常量

  • 字面常量直接赋值,不使用 var 声明:

    const Pi = 3.1415
    

2.2 常量定义

  • 常量的类型可以是布尔型、数字型或字符串类型:

    const True = true
    const Greeting = "Hello"
    

2.3 预定义常量

  • Go 语言提供了一些内置常量,如 truefalseiota(用于自动生成连续的常量值)。

2.4 枚举

  • 使用 iota 实现常量的枚举:

    const (
        Sunday = iota
        Monday
        Tuesday
    )
    

3. 类型

3.1 布尔类型

  • 布尔型只接受 truefalse 两个值:

    var isReady bool = true
    

3.2 整型

  • 整数类型有不同的大小,如 int, int8, int16, int32, int64

    • 默认 int 类型与平台位数相关(32 位或 64 位)。
    var num int = 100
    

3.3 浮点型

  • Go 支持单精度和双精度浮点数类型:float32float64

    var pi float64 = 3.14159
    

3.4 复数类型

  • Go 提供了复数类型 complex64complex128,可以直接使用复数操作。

    var c complex128 = 1 + 2i
    

3.5 字符串

  • 字符串是不可变的 Unicode 文本序列。

    var str string = "Go语言"
    

3.6 字符类型

  • 字符类型是 rune(实际上是 int32 的别名),用于表示 Unicode 码点。

    var char rune = 'G'
    

3.7 数组

  • 数组是具有固定大小的元素序列,所有元素类型相同。

    var arr [5]int
    

3.8 切片

  • 切片(Slice) 是 Go 中灵活的动态数组。

    var s []int = []int{1, 2, 3}
    

3.9 Map

  • Map 是键值对的无序集合,用于存储关联数据。

    var m map[string]int = make(map[string]int)
    

4. 流程控制

4.1 条件语句

  • if 语句用于条件判断:

    if x > 10 {
        fmt.Println("x is greater than 10")
    }
    

4.2 选择语句

  • switch 语句是 Go 的多条件分支语句:

    switch day {
    case "Monday":
        fmt.Println("It's Monday")
    default:
        fmt.Println("It's another day")
    }
    

4.3 循环语句

  • Go 只有一种循环结构:for 循环

    for i := 0; i < 10; i++ {
        fmt.Println(i)
    }
    

4.4 跳转语句

  • 使用 breakcontinue 来控制循环跳出或继续下一次迭代。

5. 函数

5.1 函数定义

  • Go 函数使用 func 关键字定义:

    func add(a int, b int) int {
        return a + b
    }
    

5.2 函数调用

  • 通过函数名和参数来调用函数:

    result := add(1, 2)
    

5.3 不定参数

  • 函数可以接收不定数量的参数,使用 ... 语法:

    func sum(nums ...int) int {
        total := 0
        for _, num := range nums {
            total += num
        }
        return total
    }
    

5.4 多返回值

  • Go 支持返回多个值:

    func swap(x, y string) (string, string) {
        return y, x
    }
    

5.5 匿名函数与闭包

  • 匿名函数是没有名字的函数,闭包是能够访问其外层变量的函数。

    func() {
        fmt.Println("Hello")
    }()
    

6. 错误处理

6.1 error 接口

  • Go 使用 error 类型处理错误,通常作为函数的最后一个返回值:

    f, err := os.Open("filename")
    if err != nil {
        fmt.Println(err)
    }
    

6.2 defer

  • defer 用于确保某个操作在函数返回前执行:

    defer file.Close()
    

6.3 panicrecover

  • panic 用于中断程序,recover 用于捕获 panic 并恢复程序:

    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Recovered from", r)
        }
    }()
    

7. 完整示例

这里展示了一个包含所有上述概念的完整示例代码,你可以自己编写和运行以加深理解。

package main

import "fmt"

func main() {
    // 变量声明和赋值
    var x int = 10
    y := "Hello"
    
    // 条件语句
    if x > 5 {
        fmt.Println("x is greater than 5")
    }
    
    // 函数调用
    result := add(3, 4)
    fmt.Println("Sum:", result)
    
    // 错误处理
    defer fmt.Println("Program Finished")
}

// 函数定义
func add(a int, b int) int {
    return a + b
}

8. 小结

  • 本部分介绍了 Go 语言中的基本变量、常量、类型、控制结构和函数定义。
  • 理解这些基础内容后,你可以编写简单的 Go 程序并进行进一步的探索。

继续通过练习和项目应用这些概念,将帮助你掌握顺序编程的核心技巧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悟生啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值