GO语言入门记录(二) | 青训营

53 阅读2分钟

经过一段时间的学习,对GO语言的理解又进一步加深了,这里继续扩充GO语言的理论知识

1.方法和接收者:

在Go语言中,方法是与特定类型绑定的函数。在函数名前面添加接收者类型,可以为该类型定义方法。例如:func (p Person) SayHello() { fmt.Println("Hello") },可以通过p.SayHello()调用该方法。

2.并发和 goroutine:

Go语言内建了轻量级的协程机制,称为goroutine。使用关键字go可以启动一个新的goroutine,在程序中实现并发执行。

3.通道(channel):

通道是用于在goroutine之间进行安全的数据传递和通信的机制。通道可以通过make函数创建,使用<-操作符进行发送和接收数据。

4.错误处理:

Go语言使用错误值来处理异常情况。函数可以返回一个错误类型,通过判断返回值是否为nil来判断是否出现错误。可以使用关键字defer来延迟执行函数,通常用于资源的释放。

5.包管理和依赖管理:

Go语言使用go mod命令进行包管理和依赖管理。可以使用go mod init命令初始化一个新的模块,并使用go get命令安装和更新依赖包。

6. defer 和 panic/recover:

Go 语言提供了 defer 关键字用于注册延迟执行的函数,在函数返回之前执行。而 panicrecover 可以用于处理运行时错误和异常。
例如:

    func doSomething() {
        defer fmt.Println("Deferred function")
        fmt.Println("Normal function")
        panic("Something went wrong")
    }

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

11. 包管理:

Go 语言使用 Go Modules 进行包管理。你可以使用 go mod init 命令来初始化一个新的模块,并使用 go get 命令来下载和管理依赖包。
例如:

   go mod init example.com/myapp
   go get github.com/gin-gonic/gin

12. 错误处理:

Go 语言鼓励使用多值返回来处理错误。通常,函数会返回一个结果和一个错误值。你可以使用 if 语句来检查错误,并采取相应的措施。
例如:

   result, err := someFunction()
   if err != nil {
       // 处理错误
   }

最后,经过一段时间的开发训练,我也发现在学习和使用 Go 语言时,要保持对代码质量的关注。编写清晰、可读性高的代码是一个好习惯。遵循 Go 语言的命名规范、代码风格和最佳实践,可以使我们的代码更易于理解和维护。使用合适的注释和文档,能够帮助他人理解我们的代码并提供良好的文档支持。