Go配置+语法学习笔记 | 青训营笔记

126 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第1天 本文是站在一个有其他语言基础的学生的角度来进行

一、本堂课重点内容: 这节课讲的就是Go的语法以及小项目还有实战内容

二、详细知识点介绍:

环境配置

首先是Go的下载需要访问( go.dev/ )  ,点击 Download ,下载对应平台安装包 我这里是Windows10,所以选择64位,安装版的比较方便一点(如下图go1.19.5.windows-amd64.msi

image.png

然后就是开发环境了,如果选择Goland,那么需要做一个学生认证,用学生邮箱认证或者学信网认证( JetBrains 学习产品 ) 如果选择VS Code的话就简单的多,因为VS免费,只需要下载一个Go的拓展即可,如下图

image.png

不过这还没有结束,因为有一个问题,那就是可能报错如果运行时报:

connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

那需要添加一下第三方代理 我这里用的是七牛的代理 使用cmd运行这个代码就好了: go env -w GOPROXY=https://goproxy.cn

如果运行这段代码出问题,那么可以重启电脑,如果还不行,那么说明Go安装不成功

Go语法

这里其实简单的多,因为之前已经学过很多编程语言了。 可以直接克隆一下语法仓库去运行,敲一敲 github.com/wangkechun/… 点击github链接克隆课程示例项目

里面基本上涵盖了所有的语法

image.png 可能半个小时就能学完所有语法

三、实践练习例子:

这里就简单说几个个人遇到的新语言的不同点好了

1var

首先是定义类型,不再是传统的 int a =10; char这些了 Go语言不太一样,首先他是反着来的,并且可以直接写value,不需要定义具体的类型,Go可以自动识别,比如说

var b, c int = 1, 2

var a = "initial"

2if

在写 if-else 的时候 else 必须要和 if 的后半个花括号写到同一行,不能换行 不然就会报错

image.png 示例:

        if num := 9; num < 0 {
		fmt.Println(num, "is negative")
	} else if num < 10 {
		fmt.Println(num, "has 1 digit")
	} else {
		fmt.Println(num, "has multiple digits")
	}

注:else 语句可以直接配套 if 语句使用,else 后面是没有加判断条件的,且不能加判断条件,否则会编译错误。如果需要加判断条件需要用else if

3switch

switch语句在go里面是比较常用的,毕竟在Go里面花了毕竟多的时间去讲,它类似于if 语句,用于基于不同条件执行不同动作。 比如说:

        switch {
	case t.Hour() < 12:
		fmt.Println("It's before noon")
	default:
		fmt.Println("It's after noon")
	}

另外Go的结构体跟之前的变化不大

type user struct {
	name     string
	password string
}

四、课后个人总结: 首先Go这个代码从语法上来说可能没有特别的那么难以接受,不过今天才是第一天,可能还没体验到网上说的Go难上手,另外就是第一次写长篇blog,真折磨啊,哭! 另外其实感觉好像,编程语言学过之后,再学就容易一些了。 在var方面Go语言不太一样,首先他是反着来的,并且可以直接写value,不需要定义具体的类型,Go可以自动识别

另外猜字游戏还是挺有意思的并且一直升级,能循序渐进的来 至于sock5,上去就来一百多行的代码,感觉挺有挑战的,并且直接跟http原理之前的学习打通了

五、引用参考:

【后端专场 学习资料一】第五届字节跳动青训营 - 掘金 (juejin.cn)