Go基础语法 | 青训营笔记

59 阅读2分钟

Go基础语法 | 青训营笔记

重点内容 & 详细知识点介绍

Go语言特点

  • 高性能、高并发
  • 语法简单、学习曲线平缓
  • 丰富的标准库
  • 完善的工具链
  • 静态链接
  • 快速编译
  • 跨平台
  • 垃圾回收

Go语言基础语法与C++区别

  • 变量声明

    • var name = "initial"
    • int num = 5
    • i := 0
  • 没有while, for-each循环

  • if, for, switch的条件判断语句没有圆括号,且模块语句必须用大括号括起来

  • switch-case运行一个case没有break也不会运行其他的case

  • switch-case可以不写最开始用来判断的变量,而在每个case里面写条件判断语句

  • 数组定义var a [5]int数据名为a,Go中数组长度固定,很少用

  • 切片:可变长度的数组,相比数组有更丰富的用法

    • 切片定义:s := make([]string, 3)
    • 切片增加元素:s = append(s, "d"),必须把append返回值赋值回去
    • 切片复制:copy(c, s)
    • 切片子范围:s[2:5]表示[2,5)下标的元素s[:5]表示[0,5)下标的元素s[2:]表示从2到最后的元素
  • map

    • 定义:m := make(map[string]int),key类型为string,value类型为int
    • 赋值:m["one"]=1
    • 删除:delete(m,"one")
  • range:用于遍历

    • 数组的遍历:有数组nums,for i, num := range nums{...},i是下标,num是对应的值
    • map的遍历:有mapmfor k, v := range m{...},k是key,v是value
  • 函数

     func add(a int, b int) int {    //参数和返回值的类型都是后置的
         return a+b
     }
     ​
     func exists(m map[string]string, k string) (v string, ok bool){
         v, ok = m[k]
         return v, ok    //v返回对应的值,ok返回是否存在
     }
    
  • 指针:主要实现对函数外传进来的参数进行修改

1.1.png

  • 结构体

     type user struct{
         name string
         password string
     }
    
  • 读取用户输入

1.2.png

实践练习例子

  • 猜谜游戏:随机数、处理用户输入、输出
  • 在线词典:调用网站接口、代码生成、map的使用
  • SOCKS5 代理:HTTP编程

课后个人总结

这堂课主要了解了Go的基础语法,个人比较熟悉C++,因为Go的语法和C++是很像的,但是在一些细节上有区别,这些区别都在上面的详细知识点介绍具体列出来了,可以多看两遍以示区别。
其他的内容就主要是三个示例,三个示例的大致涵盖的知识点在上面有所介绍,不再赘述,其中的猜谜游戏在线词典难度都不大,主要是SOCKS5 代理这个例子有些许难度,因为计算机网络的基础不是很好,后续会对计算机网络的基础知识进行巩固,然后再来消化这个例子。