后端基础班 Day1 | 青训营笔记

167 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 一 天

简要概括一下到目前为止的感受:
1.第一次参加字节的青训营活动,入营笔试;唠嗑群里的神仙打架;项目组队协商;第一天的学习;还有各种条条框框的规则和信息:若干的阅读活动,如何取得够数的青豆等等等等。
2.第一次接触飞书和掘金五花八门的功能(就连写个笔记也让我回顾了markdown),包括及时消化青训营活动信息,让我身临其境,仿佛已经是一位光荣的打工人民了。
3.对于第一天的学习,首先速度方面,明显区别于校园的幼儿园式教学,速度快内容多;30min入门Golang,后续还跟着教学实战了三个简单的程序,知识点还有待消化。


接下来分析今天的课程,首要声明的是,我也是一名Go的零基础学者,之前多是在接触Java和Python。为了给这次青训营做些铺垫,我提前两天了解基础语法,结果今天30min带完了,也让我颇有所思(这个markdown笔记还有纠错功能,6)。
1.首先就是Go的简介,特性,环境配置,ide安装
2.基础语法:变量类型,int,string,数组,切片,函数;for,if;指针,结构体等
3.错误处理;字符串处理(string包);json处理(Unmarshal,Marshal)encoding/json包;时间
4.实战:(1)猜谜游戏(基础中的基础了,本来觉得把代码放出来丢人,但是想想字数,又后面的两个我还没消化完)(2)(3)二和三分别是在线词典和socks5的代理,挺有挑战,涉及的很多包和用法也需要在往后的实践中逐步消化
5.总结:这段有凑字数的嫌疑,想到什么说什么:(1)这个写文章的功能第一次用,还不是很熟练,功能很是新颖:markdown的语法,各种其他功能我还不太会使用(2)代码块功能,我只能添加代码块,不知道怎么在代码块后切换成文本,所以文章最后摆了一段猜数字的代码(3)晚点的时候我在群里看到管理员在发Q&A,太银杏化了,只能说在职人员处理问题的全面性真不是在校学生能比的。其次,我也看了其他学员提出的一些问题:有包括对快速教学的不适应;有对实战程序的分析。我能力和理解也确实有限,看到一位问Scanf的(我没仔细看他的困惑),不过我是用Scanln接收的,主要是这也引起了我对f和ln的一些注意,我翻阅了帮助文档,但已经没耐心读了,但实战告诉我这两者这间还是要留意。总而言之,我越发对青训营有所期待了,尽我所能,在这次活动中尽量多的收获知识。也祝愿其他学员学有所成。
`

```package main
import (
	"fmt"
	"math/rand"
	"time"
)

func main() {

	// 声明变量来接收用户输入
	var inputnum int

	// 设置随机数种子,生成随机数
	maxnum := 100
	rand.Seed(time.Now().UnixNano())
	randNum := rand.Intn(maxnum)
	
	// 测试用:输出随机数
	fmt.Println("The randNum is : ",randNum)

	// 主题程序:死循环判断
	for stop := false; stop == false;{
		fmt.Println("Please input a number:")

		// 接收用户输入
		fmt.Scanln(&inputnum)

		// 接收用户输入的流处理
	// 	reader := bufio.NewReader(os.Stdin)
	// for {
	// 	input, err := reader.ReadString('\n')
	// 	if err != nil {
	// 		fmt.Println("An error happened while reading input")
	// 		continue
	// 	}
	// 	input = strings.Trim(input,"\r\n")

	// 	guess, err := strconv.Atoi(input)
	// 	if err != nil{
	// 		fmt.Println("Invalid input")
	// 		continue
	// 	} 

		// if 判断
		// if inputnum > randNum {
		// 	fmt.Println("Too big!")
		// } else if inputnum < randNum {
		// 	fmt.Println("Too small!")
		// } else {
		// 	fmt.Println("Bingo!")
		// 	break
		// }

		// switch 判断
		// 设置中断变量stop
		switch {
			case inputnum > randNum:
				fmt.Println("Too big!")

			case inputnum < randNum:
				fmt.Println("Too small!")

			default:
				fmt.Println("Bingo!")
				stop = true
		}  
	}
}
`