通过本次的后端基础班的学习,首先最基本的一点就是对go语言的基本语法进行了学习,了解Go语言的基本语法,包括变量声明、数据类型、运算符、控制流程(if-else、for、switch)、函数定义等。其次就是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(5, 3)
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)
}
}