主要内容:
go语言的优势 go语言的应用场景 go语言在字节中的使用 go语言开发环境 vscode、云环境、golang
基础语法-hello world: package main //该文件属于main包的一部分main包,程序的入口包,该文件是程序的入口文件
import "fmt" //导入标准库中的fmt包,用于输入字符串,格式化字符串
func main() {//main函数 fmt.Println("hello world!")//调用。悬浮在线文档 } 基础语法-变量: 强类型语言 变量声明 var a = "initial"//变量声明法1 f := float32(e)//变量声明法2 g := a + "foo"//字符串拼接
const s string = "constant"//常量,go的常量没有类型会根据上下文自动确定类型
if: if 8%4 == 0 {//if语句不加括号,大括号格式必须,不像c++ fmt.Println("8 is divisible by 4") }
for: go里只有for循环
swich: go与c++不同,c++走完所有分支,go单个分支,go的swich可以嵌套条件
数组: go数组特定大小,有索引——应用更多切片
切片: 可变长度数组,长度、容量和指向数组的指针,append要赋值原数组 指定长度, copy, 部分切片(左闭右开)
map:/其他语言的哈希/字典 key-value对 ok,map中是否存在某key 无序
range: 在Go语言中,range是一种用于迭代各种数据结构的关键字,常见的应用包括遍历数组、切片、映射、字符串和通道。 索引和值
函数: go特有的类型后置 go函数一般返回两个值,一个是真正的值,一个是报错相关
指针: go的指针主要用于改变常用参数
结构体: 写入和获取 作为参数如何传递
结构体方法: c++的类成员函数
错误处理: 任何实现了Error方法的类型都可以被视为error类型。Go语言没有传统的异常处理机制,而是通过返回error值来表示操作是否成功。通常情况下,我们会在函数返回多个值时,将一个error类型的值作为最后一个返回值。 nil是Go语言中的一个特殊标识符,表示“空值”。它可以用于指针、接口、切片、通道、映射和函数类型。当这些类型的变量还没有初始化或者没有有效值时,可以将它们设置为nil。
字符串操作: import “strings”
字符串格式化:
在 Go 语言中,字符串格式化主要通过 fmt 包实现,类似于 C 语言中的 printf 和 scanf 系列函数。fmt 包提供了丰富的格式化功能,可以输出格式化的字符串。
fmt.Printf :将格式化的字符串输出到标准输出(控制台)。
fmt.Printf("Hello, %s!\n", "World")
fmt.Sprintf :返回格式化的字符串,而不是直接输出。
formattedString := fmt.Sprintf("Hello, %s!", "World")
fmt.Fprintf :将格式化的字符串输出到指定的 io.Writer。
fmt.Fprintf(os.Stderr, "Error: %s\n", "file not found")
JSON操作:
在Go语言(Golang)中,encoding/json 包提供了强大的工具来处理JSON数据,允许我们轻松地将数据进行序列化(转为JSON格式)和反序列化(从JSON格式解析)。
-
序列化(将Go对象转换为JSON) 在Go中,可以使用
json.Marshal函数将Go数据结构(如结构体、map等)转换为JSON格式的字节数组。 -
反序列化(将JSON转换为Go对象) 使用
json.Unmarshal函数可以将JSON数据解析为Go的结构体或其他数据类型。
时间处理:
Go的时间处理功能主要依赖time包,通过以上方法可以方便地进行时间的获取、格式化、解析、计算、比较、时区转换以及定时任务的设置。时间模板的使用需要熟记2006-01-02 15:04:05这个基准时间格式。
数字解析:
在 Go 语言中,数字解析 主要是指将字符串形式的数字转换为 Go 中的数值类型(如整数或浮点数)。Go 标准库提供了 strconv 包来完成这些操作,这个包里包含了一些常用的函数,用于将字符串解析为不同类型的数值。
进程信息
课程感受:
感觉课程进度飞快,三十分钟的课程内容很多,很多细节也需要自己摸索,go感觉就是兼具很多语言的特性和优点,很多地方会让我联想到c++的ADT. 一开始代码跑不通还以为是环境配置的问题,结果就是我代码错了😓