golang
文章平均质量分 75
golang学习笔记
自律成就自由
这个作者很懒,什么都没留下…
展开
-
golang学习笔记017--tcp编程
目录1.网络基本介绍1.1网络编程有两种1.2 协议tcp/ip1.3OSI与TCP/IP参考模型1.4 IP地址1.5端口port1.6端口分类1.7端口注意事项2.tcp socket编程快速入门2.1服务端处理流程2.2客户端处理流程2.3示意图2.4代码实现server.goclient.go运行结果1.网络基本介绍1.1网络编程有两种● TCP socket编程,是网络编程的主流,底层是基于Tcp/ip协议。比如QQ● b/s结构的http编程,使用浏览器访问服务器时,使用的就是http协原创 2022-02-05 14:20:53 · 2014 阅读 · 0 评论 -
golang学习笔记016--反射
目录1.反射的基本概念1.1 基本介绍1.2 反射的应用场景1.3 反射重要的函数和概念2.快速入门案例2.1对基本数据类型进行反射操作2.2对结构体进行反射操作3.反射注意事项4.反射最佳实践1.反射的基本概念1.1 基本介绍● 反射可以在运行时动态获取变量的各种信息,比如变量的类型type,类别kind● 如果是结构体变量,还可以获取到结构体本身的信息(包括结构体的字段、方法)● 通过反射,可以修改变量的值,可以调用关联的方法● 使用反射,需要 import reflect● 示意图1原创 2022-01-30 18:12:39 · 1112 阅读 · 0 评论 -
golang学习笔记015--goroutine和channel
目录1.goroutine1.1 进程和线程介绍1.2 并行和并发1.3 Go协程和Go主线程1.4 goroutine快速入门(1)案例说明(2)代码实现(3)主线程和协程执行流程图(4)快速入门小结1.5 goroutine的调度模型(1)MPG模式基本介绍(2)MPG模式运行的状态1(3)MPG模式运行的状态21.6 设置Golang运行的cpu数2.channel2.1 需求2.2初步实现,但有问题2.3 不同goroutine之间如何通讯2.4 使用全局变量加锁同步改进程序2.5 为什么需要cha原创 2022-01-29 17:35:43 · 1523 阅读 · 0 评论 -
golang学习笔记014--单元测试
目录1.基本介绍2.快速入门1.基本介绍go语言自带有一个轻量级的测试框架testing和自带的go test命令来实现单元测试和性能测试,通过单元测试,可以解决如下问题: ●确保每个函数是可运行的,并且运行结果是正确的 ● 确保写出来的代码性能是好的 ●单元测试能及时发现程序设计或实现的逻辑错误,使问题及早暴露,便于问题的定位解决,而性能测试的重点在于发现程序设计上的一些问题,让程序在高并发下还能保持稳定2.快速入门创建cal.go package cal //一个被测试的原创 2022-01-29 09:36:43 · 880 阅读 · 0 评论 -
golang学习笔记013--文件操作
目录1.基本概念2. 打开文件和关闭文件(1)使用的方法(2)代码演示3.读取文件(1)使用缓冲区的方式(2)使用ioutil一次读取4.写入文件(1)os.OpenFile函数(2)示例创建文件并写入(3)示例覆盖并写入(4)示例追加内容(5)示例读和写(6)将一个文件内容写入到另外一个文件5.判断文件是否存在6.文件编程实例6.1 拷贝文件6.2统计英文、数字,空格和其它字符数量7.命令行参数7.1 os.Args获取参数7.2 flag包来解析命令行8.序列化9.反序列化1.基本概念● 输入流和输原创 2022-01-27 21:18:33 · 1172 阅读 · 0 评论 -
golang学习笔记012--面向对象编程2
目录1.封装2.继承2.1 基本概念2.2 基本语法2.3 示例代码2.4 继承说明2.5 匿名字段时数据类型2.6 多重继承3.接口3.1入门案例3.2 基本概念3.3注意事项3.4 接口编程的最佳实践4.接口VS继承5.多态6.类型断言6.1 需求6.2 基本概念6.3 类型断言的最佳实践(1)改进Usb案例(2)循环判断传入参数的类型golang仍然有面向对象编程的继承,封装和多态的特性,只是实现方式和其它OOP语言不一样1.封装封装就是把抽象出的字段和对字段的操作封装在一起,数据被保护在内原创 2022-01-27 21:18:13 · 846 阅读 · 0 评论 -
golang学习笔记011--面向对象编程1
目录1.go语言面向对象说明2.结构体2.1 结构体与结构体变量的关系图2.2 快速入门2.3 如何声明结构体2.4 创建结构体方式方式一:var Cat1 Cat方式二:varCat2 Cat = Cat{}方式三:varCat3 *Cat = new(Cat)方式四:varCat4 *Cat = &Cat{}说明:2.5 结构体使用注意事项3.方法3.1 快速入门3.2 方法的声明/定义3.3 方法的注意事项4.方法和函数的比较5.面向对象编程应用实例6.工厂模式6.1 需求6.2 工厂模式解决原创 2022-01-27 21:17:28 · 818 阅读 · 0 评论 -
golang学习笔记010--map
目录1.基本介绍2.map的使用方式一:先定义,再make,再赋值方式二:定义直接make,再赋值方式三:直接赋值举例:3.map的增删改查4.map的长度len5.map切片6.map排序7.map使用细节1.基本介绍● map是key-value 数据结构,类似其它编程语言的集合● 基本语法: var map 变量名 map[keytype]valuetype ○ key可以是很多种类型 ■ 比如bool,数字,string,指针,channel,还可以是接口,结构体,数组.通常为in原创 2022-01-27 21:16:57 · 663 阅读 · 0 评论 -
golang学习笔记009--排序与查找
目录1.冒泡排序2.二分查找1.冒泡排序package mainimport "fmt"func sort(arr *[5]int){ temp := 0 for i:=0;i<len(*arr)-1;i++{ for j:=0;j<len(*arr)-1-i;j++{ if (*arr)[j]>(*arr)[j+1]{ temp = (*arr)[j] (*arr)[j] = (*arr)[j+1] (*arr)[j+1] = tem原创 2022-01-27 21:16:26 · 199 阅读 · 0 评论 -
golang学习笔记008--数组,切片和二维数组
目录1.数组1.1数组介绍1.2数组的使用1.3数组的遍历1.4数组使用注意事项1.5 随机生成5个数,并反转2.切片slice2.1基本介绍2.2 切片的使用方式一:引用数组方式二:make方式三:方式一和方式二的区别:2.3 切片的遍历2.4 使用注意事项3.string和slice4.二维数组4.1 入门4.2 使用方式1:先声明,在赋值4.3 使用方式2:直接初始化4.4 二维数组遍历1.数组1.1数组介绍数组可以存放多个同意类型的数据,数组也是一种数据类型,在go中,数组是值类型定义:原创 2022-01-27 21:15:44 · 2263 阅读 · 0 评论 -
golang学习笔记007--函数,包和错误处理
目录1.函数2.包3.函数调用机制4.return语句5.递归6.函数使用注意事项和细节7.init函数8.匿名函数8.1 匿名函数使用方式18.2 匿名函数使用方式28.3 全局匿名函数9.闭包9.1 闭包介绍9.2 闭包的最佳实践10.函数的defer10.1 为什么需要defer10.2 defer注意事项10.3 defer的最佳实践11.函数参数传递方式12.变量作用域13.字符串操作14.时间函数15.内置函数builtin16.错误处理16.1示例16.2处理错误16.3自定义错误1.函数原创 2022-01-23 17:11:33 · 874 阅读 · 0 评论 -
golang学习笔记006--运算符
目录1.算术运算符2.关系运算符3.逻辑运算符4.位运算5.其他运算符6.键盘输入语句7.进制8.原码,反码,补码9.程序流程控制ifswitchfor1.算术运算符● fmt.Println(10/4)结果为2.如果运算符都是整数,除后,去掉小数部分,保留整数部分● 如果我们希望保留小数部分,则需要有浮点数参与运算● 当一个数取模时,等价于 a%b=a-b/b*b● go语言自增自减只能当作一个独立语言使用,不能这样使用:a=i++● go语言只有a++,a–.没有++a,–a2.关系运算符原创 2022-01-23 16:41:22 · 663 阅读 · 0 评论 -
golang学习笔记005--命名规范
目录1.标识符2.系统保留关键字3.系统的预定标识符1.标识符● 由26个英文字母大小写,0-9,_组成● 数字不可以开头● golang严格区分大小写● 标识符不能包含空格● 下划线“_”是一个特殊的符号,成为空标识符,不能单独用来作为标识符● 不能以系统保留关键字作为标识符(25个)注意:● 保持package的名字和目录保持一致,尽量采取有意义的包名,简短,有意义,不要和标准库冲突● 变量名、函数名、常量名:采用驼峰命名发(stuName,stuAddress)● 如果包名、函数原创 2022-01-23 16:29:50 · 340 阅读 · 0 评论 -
golang学习笔记004--指针
目录1.基本介绍2.使用细节3.值类型和引用类型1.基本介绍● 基本数据类型,变量存的就是值,也叫值类型● 获取变量的地址,用&● 指针类型,指针变量存的是一个地址,这个地址指向的空间存的才是值● 获取指针类型所指向的值,使用* var i int = 10 fmt.Println("i的地址=",&i)//i的地址= 0xc0000120a8 var ptr *int = &i //ptr 是一个指针变量 //ptr 的类型是 *int //ptr 本身的原创 2022-01-23 16:26:39 · 445 阅读 · 0 评论 -
golang学习笔记003--变量与数据类型
目录1.变量1.1 变量使用的三种方式1.2 多变量声明1.3 全局变量2. 数据类型2.1 数值型2.1.1 整数类型2.1.2 浮点型2.2 字符类型2.3 布尔类型2.4 String类型2.5 基本数据类型的默认值2.6 基本数据类型相互转换2.7 基本数据类型和String的转换2.7.1 方式一:fmt.Sprintf("%参数",表达式)2.7.2 方式二:使用strconv包函数2.8 String类型转基本数据类型1.变量1.1 变量使用的三种方式● 第一种:指定变量类型。声明后若不原创 2022-01-23 16:24:03 · 719 阅读 · 0 评论 -
golang学习笔记002--Hello World
目录1.下载安装并配置环境变量1.1 下载1.2 配置环境变量1.3 检查是否安装成功1.4 安装目录2.hello world2.1 目录结构2.2 hello world2.3 说明2.4编译运行2.5 开发注意事项2.6 代码规范3.fmt.printf格式化4.vscode配置1.下载安装并配置环境变量官网:https://golang.google.cn/包:https://studygolang.com/pkgdoc1.1 下载1.2 配置环境变量(1)GOROOT 安装目录(原创 2022-01-23 16:14:35 · 675 阅读 · 0 评论 -
golang学习笔记001--前言
目录1.golang学习方向2. golang应用领域3.如何高效学习golang4.如何快速掌握一个技术5.什么是程序6.为什么要学习go语言7.为什么要创造go语言?8.go语言的特点1.golang学习方向● 区块链研发工程师● Go服务器端/游戏软件工程师(数据处理,处理大并发)● golang分布式/云计算软件工程师2. golang应用领域● 区块链的应用开发● 后台的服务应用● 云计算/云服务后台应用3.如何高效学习golang高效愉快的学习先建立整体框架,然后细节用原创 2022-01-23 15:58:02 · 9492 阅读 · 0 评论