Go语言基础 | 青训营笔记

494 阅读5分钟

go.jpg

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

今天是「第五届青训营」的第一天,学习了Go语言的基础知识。对于我这个刚刚接触Go语言的新手来说,有很多知识点都是非常陌生的。通过老师的讲解,我对Go语言的基本语法、变量、数组、循环、条件语句等有了一定的了解。

在学习过程中,我深刻地意识到了Go语言简洁高效的特点。Go语言的语法简单明了,并且支持并发编程,这使得Go语言在高并发、大数据处理等领域有着广阔的应用前景。

另外,我也了解到了Go语言的开发工具,如GoLandVS Code等,这些工具能够提高我的开发效率。

总的来说,今天的学习内容对我来说非常有意义,我会在今后的学习中不断加深对Go语言的理解,并努力提高自己的编程能力。

下面是我的一些总结过的笔记内容。

一、开发工具

  • GoLand
  • VSCode(需要安装Go插件)

在两款开发工具的官网和插件介绍了解了一下,这两款开发工具都非常的方便。

1. GoLand

GoLand是JetBrains公司推出的一款专为Go语言开发而设计的集成开发环境(IDE)。它拥有强大的代码编辑、调试、跟踪、重构等功能,能够大大提高Go语言开发的效率。

GoLand具有如下特点:

  • 支持代码自动完成、智能提示、错误检查等功能
  • 支持单步调试、跟踪、断点等调试功能
  • 支持代码重构、重命名、提取函数等重构功能
  • 支持语言插件,可以与其他语言进行互操作
  • 支持 Git, Mercurial, Subversion, Perforce, CVS, TFS等版本管理工具

GoLand是目前Go语言开发中非常受欢迎的一款工具,它能够提高Go语言开发的效率和质量。

2. VSCode(Go插件)

Visual Studio Code (简称 VSCode) 是微软推出的一款轻量级、免费、开源的代码编辑器。Go插件是VSCode当中用于支持Go语言开发的一款插件。

Go插件主要包含以下功能:

  • 代码自动完成: 支持自动提示函数名、变量名等。
  • 代码格式化: 支持格式化Go代码,使代码更具可读性。
  • 语法检查: 支持语法检查,可以发现程序中的语法错误。
  • 单元测试:支持单元测试,可以在编辑器中运行单元测试
  • 调试: 支持断点、调试、追踪等调试功能
  • 集成终端: 支持集成终端, 可以在VSCode中直接运行Go程序。

Go插件是VSCode中非常流行的一款插件,它能够为Go语言开发者提供很好的支持,提高开发效率。

总的来说GoLand是一款功能非常齐全且强大的IDE,但是对于我这样刚入门Go语言的新手来说,完全不能发挥它的优势。而使用安装Go插件的VSCode对我来说它十分轻便而且足够我整个青训营期间的开发,所以我最后选择使用安装了Go插件的VSCode。

二、Go语言基础

下面是第一天上课的笔记。

1. Hello, World

相信每一门编程语言入门的第一行代码大家敲都是Hello, World吧,哈哈哈哈哈哈哈。

package main

import "fmt"

func main() {
    fmt.Println("Hello, World")
}

🤣像这样我就又学会了新的一门语言的Hello, World

2. 变量

Go是一门强类型语言,但是第一次碰到的时候乍一看怎么和JS有点像呢,下面是它的几种声明变量方式

// 第一种
var greeting string
greeting = "hello, go"

// 第二种
var greeting = "hello, go"

// 第三种
greeting := "hello, go"

像第一第二种声明方式,编译器能自动推导变量的类型,所以不用显示声明变量的类型。

3. 判断

Go语言中的判断语句和C、Java类似但是省去了括号

number := 1

if number%2 == 0 {
    fmt.Println("Even")
} else {
    fmt.Println("Odd")
}

3. 循环

在Go语言中,仅一个for就可以代替了类C语言的for、while、do...while

// 第一种
count := 0
for {
    fmt.Println("count:", count)
    count += 1
    if count >= 10 {
        break
    }
}

// 第二种
count := 0
for count < 10 {
    fmt.Println("count:", count)
    count += 1
}

4. 数组 & 切片

数组和切片是两种看起来是一样的,但实际并不一样的数据结构

// 数组,一旦声明大小就不再改变
var array1 [5]int{1, 2, 3, 4, 5}
array2 := [3]string{"apple", "banana", "pineapple"}

// 切片,大小可变
var slice1 []int{1, 2, 3, 4, 5}
slice2 := []int{1, 2, 3}
slice3 := make([]string}
slice3 = append(slice3, "apple")

// 两者都可以用len()、cap()等内置函数
array_len := len(array1)
slice_len := len(slice1)

5. map

在Go语言中,map是一种关联数组类型,它存储键值对数据,是一种无序的集合,可以通过键来访问值

// map的几种声明方式

// 这样的map声明出来是nil,是不能使用的,需要注意,最好用make函数
var ages map[string]int

ages := make(map[string]int)

ages := map[string]int{ "alice":31, "bob":25, "chris":34, }

// 可以通过键访问值
age := ages["alice"]

6. 案例 & 标准库

今天的课程中,老师还讲解了几个标准库的使用方法并通过3个案例来展示了这几个标准库一般都是怎么运用在项目中的

标准库

  • strings
  • strconv
  • rand
  • encoding/json
  • time
  • os

三、第一天总结

Go语言的语法相较于类C语言确确实实的简化了很多,但是在大学学习中习惯了C语言的我学起Go多少是有点不习惯,今天的内容还有很多,但是写的有点累了,明天的课程结束后再写吧🥲