type
status
date
slug
summary
tags
category
icon
password
1.语法基础
- 输入输出
- 条件控制
- if
- switch
- label
- goto
- 循环控制
go中没有while循环,使用for循环控制变量来实现while循环的功能
- 切片
- 数组-容量固定,不可更改,切割的区间是左闭右开
- 切片-容量灵活,可以扩展
- len-长度, cap-容量
- 多维切片-数组在初始化时,其一维和二维的长度早已固定,而切片的长度是不固定的,切片中的每一个切片长度都可能是不相同的,所以必须要单独初始化
- 拓展表达式
只有切片才能使用拓展表达式
需要满足关系
low≤ high ≤ max ≤ cap
,使用拓展表达式切割的切片容量为max-low
- 字符串-字符串没法修改但是可以覆盖
- 普通字符串
- 原生字符串
- 转换
- 拷贝
- 拼接
使用
""
表示,支持转义,不支持多行书写使用
``
表示,不支持转义,支持多行书写,所有字符都会原样输出字符串可以转换为字节切片,而字节切片或字节数组也可以转换为字符串
使用内置函数
copy
使用
+
操作符,或者转化为字节切片后再进行添加元素,但是这两个方法性能较差,可以使用strings.Builder
来提高性能- 映射表
map[keyType]valueType{}
map是引用类型,零值或未初始化的map可以访问,但是无法存放元素,所以必须为其分配内存- 结构体-结构体本身以及其内部的字段都遵守大小写命名的暴露方式
2.语法进阶
- 函数
- 声明
- 参数
- 返回值
- 匿名函数-只能在函数内部存在
- 闭包
- 延迟调用
defer
关键字描述的匿名函数会在函数返回之前执行,多个defer
语句,按照后进先出的顺序执行- 方法-只有自定义类型能拥有方法,方法有接收者
- 接口
- 基本接口
- 泛型 = 类型参数 + 类型约束
- 类型
- 类型后置
- 类型声明
- 类型别名
- 类型转换
- 类型断言
- 类型判断
- 错误
- error
- panic
- fatal
- 文件-操作的基本类型是
[]byte
,使用os
,io
等包进行操作 - 打开
- 读取
- 写入
- 复制
打开一个文件后要记得关闭该文件,通常关闭操作会放到defer
语句里
- 并发
- 协程
- Author:ninuan
- URL:http://hexo.1234211.xyz/article/247f2d00-2350-8059-bf79-d98ed7c3f946
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!