River 的个人后端实践笔记|青训营

101 阅读3分钟

River 的个人后端笔记|青训营:

实践笔记

Go 语言入门指南:基础语法和常用特性解析

字节跳动青训营学习笔记 1
仅作个人学习参考

  1. 课程结构

截屏2023-07-25 12.03.09.png

  1. 概要
    go 语言的特点
  • 高性能
  • 类似C语言
  • 只有for循环
  • 静态编译
  • 快速编译
  • 交叉编译:编译环境和运行环境不同
  1. 基础语法
  • 关于包:(package)
    类似python的dependencies 首先需要引用 main package:
    与python不同的是,go语言需要启动函数。在运行一个以go为结尾的文件时,唯一的 main方法,也就是该文件內的代码被执行。
    这样的作用,是可以将dependency的关系区分开:同一个main函数下的代码可以调用其他的package,但是其他的package无法调用这个main函数。[1]

- Go 是强类型语言 同样是强类型语言的还有:

python, cpp, Java

强类型语言中,所有的变量需要先定义类型后使用。除了强制性转换以外,定义过的变量,类型将不会发生变化。

  • 变量类型:

    1. 整数类型
      分为有符号和无符号(u):
      (u)int,(u)int8,(u)int16,(u)int32,(u)int64,(u)intpr,byte,rune
      int后的数字代表最大的2的幂
      *在不同的编译环境整数类型变量的值可能会变,类似于python的floating point error

    2. 字符串类型
      byte,rune,string
      go语言支持UTF8编码。
      转义字符同样适用。"\n", \r,
      一个字母占用一个字节,一个汉字占用三个字节

    3. 浮点型
      与python类似。 保留n小数位: "%.nf"

    4. 布尔型
      true false
      只有两个相同类型的可以进行比较,不能参与计算和类型转换 [2]

  • 变量声明方式
    var(或const) "变量名" (“变量类型”)= “变量值”
    简短变量声明:
    变量名 := 变量值 new(变量类型) 无名变量

需要注意的是,使用简短变量声明有可能遇到命名冲突。需要充分理解待操作的变量,正确地使用指针。这点与python不同。

-常用函数/方法

  • for
    for 条件 命令 {
    循环内容
    }
    注:go 语言没有while循环

  • switch
    给定条件在不同的情况(case)中依次执行直到匹配条件,自己break

  • range
    相比于python中用于遍历一段数字范围的range函数,go中的range函数功能更加广泛。它能够遍历一个数组或其他数据储存格式中的元素,返回值和索引(或值和键)。 使用方法也很简单:以下是遍历一个小名单。

截屏2023-07-30 22.54.41.png

输出结果:

截屏2023-07-30 22.56.38.png
  • 指针
    每个占用内存的变量在内存空间中有自己的位置,而指向这个位置的‘路径’或‘地址’就是指针。 通过获取某个变量的指针,我们就能得到它在内存中的位置:
    &变量名
    指针类型的表示方式:
    *变量类型

  • struct(结构体)
    类比到python中的class。但是它与class有本质上的不同。结构体可以仅由定义的变量组成而其中不包含任何函数操作,不像python中的class服务于面向对象功能。

Reference

[1] go package 详解

[2] go 语言常见变量类型