Go语言学习总结一| 青训营

89 阅读4分钟
通过本次的后端基础班的学习,首先最基本的一点就是对go语言的基本语法进行了学习,了解Go语言的基本语法,包括变量声明、数据类型、运算符、控制流程(if-elseforswitch)、函数定义等。其次就是GO语言当中的数据类型:掌握了Go语言的基本数据类型,包括整型、浮点型、字符串、布尔型等,在掌握数据类型之后,还了解了类型转换和类型推断的使用。再者就是对函数的学习,学习了函数的定义、调用和返回值,了解函数的参数传递方式以及可变参数函数的使用,再往后就是对数组和切片的学习:了解数组和切片的定义和使用,学习切片的动态扩容和截取操作;还有就是结构体,学习结构体的定义和使用。了解嵌套结构体、结构体的方法和结构体的匿名字段。
除了上述的基础知识之外,令我印象比较深刻的就是指针的学习,在之前的学习当中我对指针的了解并不是很透彻,通过本次的学习,了解了指针的概念和使用,包括学习指针的声明、取值和解引用操作。还有就是一些专业知识的学习,例如包和模块,对Go语言中的包和模块做了一定的学习,学习如何创建和使用自定义包,以及如何导入和使用标准库的包;错误处理也是Go语言学习过程当中十分重要的一个环节:学习Go语言中的错误处理机制,包括使用错误类型和返回错误信息。
对任何一个编程语言的学习,一定是越学越深入的,在不断的学习当中,除了每天的课程之外,我也在别的途径上学习了一些额外的Go语言知识,以课程视频为基础,对相关知识进行拓展。其中包括并发编程,对Go语言中的并发编程模型,包括使用goroutine和通道(channel)进行并发控制和数据共享。除了并发编程之外,也掌握了文件相关的操作,了解如何在Go语言中进行文件的读写操作,包括打开文件、读取文件内容和写入文件内容等。再往后就是对测试和调试的学习,学习如何编写单元测试和性能测试,以及如何使用调试工具进行代码调试。
通过这段时间的学习,我发现Go语言以其简洁和可读性而闻名。它具有清晰的语法和简单的代码结构,使得代码易于编写和理解。这使得团队协作和维护代码变得更加容易。除了语言上的优点之外,Go语言还支持并发编程:Go语言内置了并发编程的支持,通过goroutine和channel,可以轻松地实现并发控制和数据共享。这使得开发高性能和高并发的应用程序变得更加简单;此外Go语言在性能方面表现出色。其编译器和运行时系统的优化使得Go程序具有较低的内存占用和较高的执行效率。这使得Go语言成为构建高性能应用程序的理想选择;最后的感受就是Go语言拥有丰富的标准库,涵盖了各种常用的功能和工具。除了一些代码使用上的优点之外,Go语言还有一个突出的特点就是Go语言的编译器可以将Go代码编译为机器码,从而实现跨平台的支持。这意味着可以在不同的操作系统和硬件平台上运行Go程序,为开发者提供了更大的灵活性和可移植性。

以下是Go语言学习过程中所做的一些知识点总结:
1.变量和数据类型:package main  

import "fmt"  

func main() {  
    // 声明变量并初始化  
    var name string = "Alice"  
    age := 20 // 类型推断  

    // 打印变量的值  
    fmt.Println("Name:", name)  
    fmt.Println("Age:", age)  

    // 数据类型转换  
    var num1 int = 10  
    var num2 float64 = float64(num1)  
    fmt.Println("Num2:", num2)  
}2.控制流程和循环:package main  

import "fmt"  

func main() {  
    // if-else语句  
    num := 10  
    if num > 0 {  
        fmt.Println("Positive")  
    } else if num < 0 {  
        fmt.Println("Negative")  
    } else {  
        fmt.Println("Zero")  
    }  

    // for循环
for i := 1; i <= 5; i++ {
fmt.Println(i)
}

    // switch语句
day := 3
switch day {
case 1:
fmt.Println("Monday")
case 2:
fmt.Println("Tuesday")
case 3:
fmt.Println("Wednesday")
default:
fmt.Println("Other day")
}
}3.函数和包:package main

import "fmt"  

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

// 包级别的变量和常量  
var globalVar = 100  
const PI = 3.14159  

func main() {  
    // 函数调用  
    sum := add(53)  
    fmt.Println("Sum:", sum)  

    // 打印包级别的变量和常量  
    fmt.Println("GlobalVar:", globalVar)  
    fmt.Println("PI:", PI)  
}4.切片和映射:package main  

import "fmt"  

func main() {  
    // 切片  
    fruits := []string{"apple""banana""orange"}  
    fmt.Println(fruits)  
    fmt.Println("Length:"len(fruits))  
    fmt.Println("First:", fruits[0])  

    // 映射  
    scores := map[string]int{  
        "Alice"90,  
        "Bob":   80,  
        "Cindy"95,  
    }  
    fmt.Println(scores)  
    fmt.Println("Bob's score:", scores["Bob"])  

    // 遍历切片和映射  
    for _, fruit := range fruits {  
        fmt.Println(fruit)  
    }  
    for name, score := range scores {  
        fmt.Println(name, ":", score)  
    }  
}