Go语言基础-基础语法|青训营

129 阅读6分钟

Go语言(又称为Golang)是由Google开发的一种开源编程语言。Go的设计目标是提供高效、可靠和简单的编程语言,专注于高并发和并行编程,适用于构建可靠且高性能的系统。

以下是Go语言的一些优点:

  1. 高并发性:Go语言内置了轻量级的并发模型,通过goroutine和channel实现并发编程。这使得Go非常适合构建并发任务和高并发的服务器应用。

  2. 快速编译:Go是编译型语言,它的编译速度非常快,使得开发和调试过程更加高效。

  3. 高性能:Go的设计目标之一是提供高性能的执行效率。由于它是编译型语言,生成的二进制文件运行速度很快,适用于对性能要求较高的应用。

  4. 内置工具:Go附带了丰富的工具集,如代码格式化工具gofmt、代码静态分析工具go vet、包管理工具go mod等,这些工具能够提高代码质量和开发效率。

  5. 静态类型:Go是一种静态类型语言,编译器在编译时能够检查类型错误,增加代码的安全性。

  6. 跨平台:Go支持多个平台,可以轻松地在不同操作系统上进行开发和部署。

  7. 简洁易读:Go语言的语法设计简洁易读,减少了代码的复杂性,使得代码更加清晰和易于维护。

  8. 强大的标准库:Go标准库提供了丰富的功能,包括网络、文件处理、加密、并发等,这些功能能够满足大部分开发需求,避免了依赖过多的第三方库。

  9. 社区活跃:Go语言的社区非常活跃,拥有众多的开发者和库,可以轻松获取帮助和资源。

综合来看,Go语言是一种现代化、高效、简洁和高性能的编程语言,适用于各种类型的项目,特别适合构建并发性能要求较高的应用程序。它的优势使得越来越多的开发者和公司选择使用Go来解决实际问题。

当然,我会帮你写一篇关于Go语言基础学习的笔记。请注意,由于我们的聊天窗口限制,我将以简洁的方式呈现重要的知识点。如果你有任何需要详细解释的地方,请随时提问。

Go语言基础学习笔记

Go语言(也称为Golang)是一种开源的编程语言,由Google开发。它旨在提供高效的性能和简单的语法,使其成为构建可靠、高并发的应用程序的理想选择。下面是Go语言基础的学习笔记:

  1. 安装与设置:

    • 前往Go官方网站(golang.org)下载并安装Go。
    • 设置环境变量:确保你的GOPATH和GOROOT正确设置。
  2. Hello, World!

    package main
    
    import "fmt"
    
    func main() {
        fmt.Println("Hello, World!")
    }
    

    以上代码是Go的Hello World程序,学习Go的第一步是运行并熟悉这个程序。

  3. 变量与数据类型:

    • 声明变量:使用var关键字进行声明。
    • Go的基本数据类型:整数类型(int, int8, int16, int32, int64),浮点数类型(float32, float64),布尔类型(bool),字符串类型(string)等。
  4. 控制流程:

    • 条件语句:if-elseswitch
    • 循环语句:for循环。 go语言中循环只有for Go语言只有for循环这一种循环语句。for循环有多种形式,其中一种如下所示: for initialization; condition; post { // zero or more statements }

for循环三个部分不需括号包围。大括号强制要求, 左大括号必须和post语句在同一行。 initialization语句是可选的,在循环开始前执行。initalization如果存在,必须是一条简单语句(simple statement),即,短变量声明、自增语句、赋值语句或函数调用。condition是一个布尔表达式(boolean expression),其值在每次循环迭代开始时计算。如果为true则执行循环体语句。post语句在循环体执行结束后执行,之后再次对conditon求值。condition值为false时,循环结束。 for循环的这三个部分每个都可以省略,如果省略initialization和post,分号也可以省略: // a traditional "while" loop for condition { // ... } […]”

  1. 数组与切片:
    • 声明数组:var arr [size]type,其中size为数组大小,type为数组元素类型。
    • 声明切片:var slice []type,切片是动态大小的数组。

在Go语言中,make函数和slice函数都与切片(slice)有关,但它们是不同的概念。

  1. make函数: make函数用于创建一个切片、映射或通道,并为其分配内存。make函数的语法是:

    make(Type, size)
    

    其中,Type表示要创建的数据类型(切片、映射或通道),size表示切片、映射或通道的长度或容量(取决于创建的数据类型)。对于切片,size是指切片的长度。

    示例:创建一个长度为10的整数切片

    numbers := make([]int, 10)
    
  2. slice函数: slice函数是切片的一个操作函数,用于从一个数组或切片中返回指定范围的子切片。slice函数的语法是:

    slice(sliceable, start, end)
    

    其中,sliceable表示原始的数组或切片,startend分别表示子切片的起始索引和结束索引(不包含在子切片内)。

    示例:从一个整数切片中取出索引2到索引5(不包含)的子切片

    numbers := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
    subSlice := slice(numbers, 2, 5) // 返回子切片 [3, 4, 5]
    

总结:

  • make函数用于创建切片、映射或通道,并分配相应的内存空间。
  • slice函数用于从一个数组或切片中提取子切片,不进行内存分配,只是将切片指向原始数据的一部分。
  1. 函数:

    • 声明函数:func functionName(parameters) returnType { ... }
    • 多返回值:Go支持多个返回值,可增加代码的灵活性。
  2. 结构体与方法:

    • 定义结构体:使用type关键字。
    • 方法:结构体可以关联方法,增加结构体的行为。
  3. 包与导入:

    • 包:Go中的代码组织单元是包(package)。
    • 导入:使用import关键字导入其他包,访问其功能。
  4. 并发与Go协程:

    • Go通过goroutine实现并发,可以轻松处理高并发任务。
    • 使用go关键字来启动goroutine。
  5. 错误处理:

    • 使用error类型来处理错误。
    • defer关键字用于延迟函数的执行,通常用于资源的释放。

总结:学习Go语言的基础语法是掌握Go编程的基础,通过不断练习和实践,深入理解Go语言的特性和优势,并能够编写出高效、可靠的Go程序。在学习过程中,多阅读官方文档和优秀的Go教程,