简介
作者本人是第一次参加字节的青训营活动,此次青训活动的主打感觉就是AI+教学,不仅提供AI算法刷题模型豆包MarsCode,还在基础教学的环节加入AI练中学功能,所以学习方式和原先发生了不少变化,此文就是我首次使用AI练中学功能的记录贴。
AI练中学是什么?
AI练中学是字节跳动推出的一款学习辅助工具,帮助学生方便的对学习内容进行实践,它跟随课程内容部署,提供课程中代码的执行环境,而无需学生自己配置和部署实验环境,可以实现一键实践的效果,提高学生的学习效率。
点击进入 AI练中学,可以看到教学中所使用的Go语言环境已经被搭建好,并且提供所有的课程配套代码。
本次实践学习内容
go语言基础课程内容
此次上课内容来自字节跳动青训营(后端组《Go语言原理与实践(王克纯老师主讲)》。
课程内容覆盖Go语言基础、Go语言的工程实践、Go语言编程建议、以及一些优化和实践案例。
实践记录
- go 语言特性
- hello world
第一行package main这个代表这个文件属于一个main包的一部分,也是程序的入口文件。第三行开始导入了标准库里的包,主要是用来往屏幕输入输出字符串,格式化字符串。
AI 练中学实践结果:
- 变量
常见的变量类型包括字符串、整数、浮点型、布尔型,字符串是内置类型,可以直接通过加号去拼接,也能够直接用=去比较两个字符串,大部分运算符的使用和优先级都和C或者C++很类似。
const 没有确定的类型,它会根据使用的上下文来自动确定类型。
AI 练中学实践结果:
- 条件控制
If else和C或者C++很类似,不同点是 if 后面没有括号,条件后面必须直接就大括号。
AI 练中学实践结果:
switch分支结构看起来也和C或者C++比较类似,这里有一个很大的不同点是在C++里面switch case,如果不显示加break,会继续往下跑完,go 的 case分支默认是不需要加的。
AI 练中学实践结果:
- 循环
只有唯一的一种 for 循环,最简单的或循环就是在或里面什么都不写,就代表一个死循环。可以用continue来计时循环,也可以用break来跳出循环。
AI 练中学实践结果:
- 数组
一个具有编号及长度固定的元素序列,可以存取或者读取特定索引它的值。在真实的业务代码里面,我们很少直接用数组,因为它的长度是固定的。我们更多的时候用的是切片。
AI 练中学实践结果:
- 切片
一个可变长度的数组,可以任意更改。有更丰富的操作,可以用make 来创建切片。创建的切片可以像一个数组那样去用,去往里面去写值或者是存储值。切片可以用 append 的去追加元素。
AI 练中学实践结果:
- map
在其他编程语言里面,它可能叫做哈希或者字典,可以通过 [] 语法写入KV对,也能通过方法去读取K,通过delete去删除KV。遍历的时候不会按字母顺序,也不会按插入顺序输出,而是一个偏随机的 输出。
AI 练中学实践结果:
- range
用range来快速遍历,这样代码能够更加简洁。第一个值是索引,第二个值是对应位置的值。
AI 练中学实践结果:
- 函数
变量类型是后置的,里面的函数是原生支持返回多个值。在实际的业务逻辑代码里面,几乎所有的函数都反回多个值。
AI 练中学实践结果:
- 指针
指针的一个主要用途就是给传入的参数进行修改。
AI 练中学实践结果:
- 结构体
结构体是单类型的字段的集合,在初始化的时候,需要存入每个字段的初始值。
AI 练中学实践结果:
- 方法
类似于其他语言里面的类成员函数,实现结构性方法的时候,也会有两种写法,一种就是不带指针,带指针可以避免一些大结构体拷贝的开销。
AI 练中学实践结果: