Go 语言上手-基础语言 | 青训营笔记

152 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记。

Go简介

什么是Go语言:特点

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

哪些公司在用

image.png

Go入门

开发环境

编译器

Vscode\Goland

基础语法

Hello World

package main

import "fmt"

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

数组

数组定义:var 数组名 [数组大小] 数组类型

  • 数组的地址可以通过数组名来获取:&a\
  • 数组第一个元素的地址就是数组的首地址 for-range遍历数组
for index,value:=range array01{ }
  1. 第一个返回值index是数组的下标\
  2. 第二个value是在该下标位置的值\
  3. array01是数组名

切片

1.切片是一个数组的引用,因此切片是引用类型,在进行传递时,遵守引用传递的机制。
2.切片的长度是可以变化的,因此切片是一个可以变化动态数组。
3.切片定义:var 切片名 []类型
切片使用的三种方式:

  • 定义一个切片,然后让切片引用一个已经创建好的数组。
  • 通过make来创建切片
  • 定义一个切片,直接指定具体数组

结构体(Struct)

  • struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套其他结构体,也可以定义方法。
  • 封装性:字段首字母大写包外可访问、小写包外不可访问
  • 继承:用聚合实现继承(把父类放到子类里)
  • tag:定义特定格式中的形式或约束条件,书写:``
  • 结构体的方法:收参是A结构体就是A结构体的方法。
  • 结构体的初始化:
  • 直接初始化:person := Person{}
  • 使用new:返回的是指针
  • 类似数组,也有值传递和引用传递的区别,不传指针就没法改
  • 注意,指针和非指针对字段的访问都是用.:person.Age =

字符串操作

标准库strings包

时间处理

标准库time包

数字解析

标准库strconv包

进程信息

标准库os包

总结与思考

Go语言和java、C、C++等语言基础语法上有相通的地方,因此入门不太困难,Go有其独特的优势,很值得学习。