这是我参与「第五届青训营 」伴学笔记创作活动的第1天 本文是站在一个有其他语言基础的学生的角度来进行
一、本堂课重点内容: 这节课讲的就是Go的语法以及小项目还有实战内容
二、详细知识点介绍:
环境配置
首先是Go的下载需要访问( go.dev/ ) ,点击 Download ,下载对应平台安装包 我这里是Windows10,所以选择64位,安装版的比较方便一点(如下图go1.19.5.windows-amd64.msi
然后就是开发环境了,如果选择Goland,那么需要做一个学生认证,用学生邮箱认证或者学信网认证( JetBrains 学习产品 ) 如果选择VS Code的话就简单的多,因为VS免费,只需要下载一个Go的拓展即可,如下图
不过这还没有结束,因为有一个问题,那就是可能报错如果运行时报:
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链接克隆课程示例项目
里面基本上涵盖了所有的语法
可能半个小时就能学完所有语法
三、实践练习例子:
这里就简单说几个个人遇到的新语言的不同点好了
1var
首先是定义类型,不再是传统的
int a =10;
char这些了
Go语言不太一样,首先他是反着来的,并且可以直接写value,不需要定义具体的类型,Go可以自动识别,比如说
var b, c int = 1, 2
var a = "initial"
2if
在写 if-else 的时候 else 必须要和 if 的后半个花括号写到同一行,不能换行
不然就会报错
示例:
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原理之前的学习打通了
五、引用参考: