走进Go语言基础语言 | 青训营笔记

66 阅读2分钟

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

一,本堂课的重点内容

① 背景介绍

② 开发环境,基础语法,标准库

③ 三个小实战

二,详细知识点介绍

高性能,高并发。语法简单,学习曲线平缓。丰富的标准库。完善的工具链。静态链接。快速编译(这个真是太友好了)。跨平台。垃圾回收。这些都是GO的优点呀!

① 开发环境的配置

首先安装golang--->安装参考博客

然后配置VSCode-->配置参考博客 达到效果-->鼠标移动到上面能有提示信息屏幕截图(244).png

② 基础语法

变量--->

var a = "initial"//自动推导变量类型
var b, c int = 1, 2//显示说明了变量类型
var d = true

f := float32(e)//另一种变量声明

const s string = "constant"//常量,没有确定的类型,根据使用的上下文自动确定

if else--->

if 7%2 == 0 {
	fmt.Println("7 is even")
} else {
	fmt.Println("7 is odd")
}

for--->golang里面的循环

for {
	fmt.Println("loop")
	break
}
for j := 7; j < 9; j++ {
	fmt.Println(j)
}

switch--->golang中一旦有一个结果符合就不用跑完所有的分支,可以使用任意的变量类型(字符串结构体等)

切片-->可变长度的数组

s := make([]string, 3)
s[0] = "a"
s[1] = "b"
s[2] = "c"
fmt.Println(s[2:5]) // [c d e]
fmt.Println(s[:5])  // [a b c d e]
fmt.Println(s[2:])  // [c d e f]

good := []string{"g", "o", "o", "d"}

range--->

for i, num := range nums {
	sum += num
	if num == 2 {
		fmt.Println("index:", i, "num:", num) // index: 0 num: 2
	}
}

结构体方法--->Java人一下熟悉了有没有

type user struct {
	name     string
	password string
}
func (u user) checkPassword(password string) bool {
	return u.password == password
}
func (u *user) resetPassword(password string) {
	u.password = password
}

错误处理---> 单独的返回值来传递错误信息,能很清晰的知道哪个函数返回了哪个错误,并且能够用简单的if-else处理错误,在函数中的返回值里加一个error。

Json处理--->一个已有的结构体,保证每个字段的第一个字母是大写

json.Marshal()

json.Unmarshal()

三,实践练习例子

这里主要是自己听课和课后自己敲代码消化的一些心路历程啦

① 猜谜游戏

感觉这个非常基础的例子是让我们在熟悉编辑器怎么运行啊什么什么的同时知道了怎么输入reader := bufio.NewReader(os.Stdin)等,还有就是输入时的一些/r/n这些的注意。

reader := bufio.NewReader(os.Stdin)

input, err := reader.ReadString('\n')//读取一行输入

② 词典

go语言怎么调用第三方API,怎么发送http请求,解析json,如何使用代码生成提高开发效率等。之前还没有这样的尝试过,又学习到了。

感觉这个实践主要还是和json(项目中非常重要的前后端桥梁)和介绍了两个非常高效的软件,在做课后作业的时候也时更深入的了解了这个代码。

③ SOCKS5

让我再消化消化再来update吧