- 博客(16)
- 收藏
- 关注
转载 Go学习笔记:并发编程
每个go程序至少都有一个Goroutine:主Goroutine(在运行进程时自动创建)。以及程序中其他Goroutine 例如:下面程序创建了main的Goroutine及匿名的Goroutine。func main() { go func() { fmt.Println("you forgot me !") }()}在go中有个package是sync,里面包含了:WaitGroup、Mutex、Cond、Once、Pool,下面依次介绍。1.WaitGroup假设主线程要等待其余
2020-12-26 16:22:37
151
转载 Go学习笔记: 单元测试
在日常开发中,我们通常需要针对现有的功能进行单元测试,以验证开发的正确性。 在go标准库中有一个叫做testing的测试框架,可以进行单元测试,命令是go test xxx。测试文件通常是以xx_test.go命名,放在同一包下面。11.1 初探Go单元测试现在假设现在需求是:完成两个复数相加,我们只需要一个函数便可以完成该任务。在开发中,我们需要对该函数进行功能测试,如何快速进行单元测试呢?鼠标放在函数上右键,选择GO:Generate Unit Tests For Function即可生成fi
2020-12-25 18:25:16
156
转载 Go学习笔记:反射
10.1 反射是什么反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。Go 语言提供了一种机制在运行时更新变量和检查它们的值、调用它们的方法,但是在编译时并不知道这些变量的具体类型,这称为反射机制。10.2 反射的作用1.在编写不定传参类型函数的时候,或传入类型过多时典型应用是对象关系映射type User struct { gorm.Model Name string Age sql
2020-12-24 23:14:55
86
转载 Go学习笔记:异常处理
9.1 errorGo语言内置了一个简单的错误接口作为一种错误处理机制,接口定义如下:type error interface { Error() string}它包含一个 Error() 方法,返回值为stringGo的error构造有两种方式,分别是第一种:errors.New()err := errors.New("This is an error")if err != nil { fmt.Print(err)}第二种:fmt.Errorf()err := fmt.Er
2020-12-23 20:59:59
224
转载 Go学习笔记:包管理
8.1 Go Modules是什么?Go语言通过包管理来封装模块和复用代码,这里我们只介绍Go Modules管理方法Go Modules于Go语言1.11版本时引入,在1.12版本正式支持,是由Go语言官方提供的包管理解决方案Modules是相关Go包的集合,是源代码交换和版本控制的单元。go命令直接支持使用Modules,包括记录和解析对其他模块的依赖性8.2 Go Modules的使用方法8.2.1 环境变量首先需要设置环境变量,可以使用go env命令查看当前配置。$ go envG
2020-12-22 23:13:46
84
转载 Go学习笔记: 结构体、方法、接口
7.1.结构体Go 语言中没有“类”的概念,也不支持像继承这种面向对象的概念。但是Go 语言的结构体与“类”都是复合结构体,而且Go 语言中结构体的组合方式比面向对象具有更高的扩展性和灵活性。7.1.1 结构体定义结构体一般定义如下:type identifier struct { field1 type1 field2 type2 ...}例如我们想声明一个学生的结构体类型:type Student struct { Name string Age int}结构体中字
2020-12-21 21:48:49
107
转载 Go学习笔记6 函数
6.1 函数定义在go语言中函数定义格式如下:func functionName([parameter list]) [returnTypes]{ //body}函数由func关键字进行声明。functionName:代表函数名。parameter list:代表参数列表,函数的参数是可选的,可以包含参数也可以不包含参数。returnTypes:返回值类型,返回值是可选的,可以有返回值,也可以没有返回值。body:用于写函数的具体逻辑例1:下面的函数是用于求两个数的和fun
2020-12-20 15:21:37
131
原创 go学习笔记5:数组和切片
数组和切片如何定义数组数组是具有相同类型且长度固定的一组连续数据。在go语言中我们可以使用如下几种方式来定义数组。//方式一var arr1 = [5]int{}//方式二var arr2 = [5]int{1,2,3,4,5}//方式三var arr3 = [5]int{3:10}因为数组是固定长度的,所以在一些场合下就显得不够灵活,所以go语言提供了一种更为便捷的数据类型叫做切片。切片操作与数组类似,但是它的长度是不固定的,可以追加元素,如果以达到当前切片容量的上限会再自动扩容。如
2020-12-19 12:59:00
222
1
转载 go学习笔记4:字典和字符串
4.字典、字符串4.1 字典map是一种较为特殊的数据结构,在任何一种编程语言中都可以看见他的身影,它是一种键值对结构,通过给定的key可以快速获得对应的value。4.1.1 如何定义字典var m1 map[string]intm2 := make(map[int]interface{}, 100)m3 := map[string]string{ "name": "james", "age": "35",}在定义字典时不需要为其指定容量,因为map是可以动态增长的,但是在可以预知
2020-12-18 22:04:51
123
1
转载 go学习笔记3:运算符、控制语句
3.运算符、控制语句3.1 运算符假定 A 值为 10,B 值为 20。3.1.1 算数运算符运算符描述实例+相加A + B 输出结果 30-相减A - B 输出结果 -10*相乘A * B 输出结果 200/相除B / A 输出结果 2%求余B % A 输出结果 0++自增A++ 输出结果 11–自减A-- 输出结果 93.1.2 关系运算符运算符描述==检查两个值是否相等,如果相等
2020-12-17 22:31:52
99
转载 Go学习笔记2:变量 、常量、枚举
2.变量 、常量、枚举2.1 变量变量,计算机语言能存储计算结果或表示值的抽象概念。可以通过变量名访问,变量名由字母、数字、下划线组成,其中首个字符不能为数字。声明变量的一般形式是使用 var 关键字:var identifier typevar identifier1, identifier2 type变量声明方式:指定变量类型,若没有初始化,数值类型(包括complex64/128)默认零值,bool默认false,字符串默认“”,“var a *int、var a []int、var
2020-12-16 21:17:54
84
转载 Go 学习笔记1: 数据类型、关键字、标识符
数据类型布尔型只可以是常量 true 或者 false。eg:var b bool = true数字类型整型和浮点型:整型 int 和浮点型 float32、float64,Go 语言支持整型和浮点型数字,并且支持复数位的运算采用补码字符串类型:字符串就是一串固定长度的字符连接起来的字符序列,Go 的字符串是由单个字节连接起来。复数:complex128(64 位实数和虚数)和 complex64(32 位实数和虚数),其中 complex128 为复数的默认类型
2020-12-15 20:24:02
84
原创 Go学习笔记:go初探
Go 初探Go语言特性Go语言(或 Golang)起源于 2007 年,并在 2009 年正式对外发布。Go 是非常年轻的一门语言,它的主要目标是兼具 Python等动态语言的开发速度和 C/C++等编译型语言的性能与安全性,旨在不损失应用程序性能的情况下降低代码的复杂性,具有“部署简单、并发性好、语言设计良好、执行性能好”等优势。自动垃圾回收常见的 GC 算法分别有:引用计数法、标记清除(Mark-Sweep)法、三色标记法、分代收集法python 中是使用了引用计数+标记清楚+分代回收来进
2020-12-14 21:34:40
101
原创 机器学习算法梳理(三)决策树
文章目录一、信息论基础二、决策树的不同分类算法ID3算法C4.5算法CART回归树三、回归树原理四、决策树防止过拟合手段五、模型评估六、sklearn参数详解七、Python绘制决策树决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。大致分类过程可以描述为:从根节点开始,对实例的某一特征进行测试,并根据结果将实例分配给其子节点,如此递归地对实例进行测试并分配直到达到叶节点的类...
2019-01-08 17:17:35
693
1
原创 机器学习算法梳理(二)逻辑回归
文章目录一、逻辑回归与线性回归的联系与区别二、逻辑回归的原理三、损失函数的推导与优化四、正则化与模型评估指标正则化模型评估指标五、逻辑回归的优缺点六、样本不均衡问题的解决办法七、sklearn参数总结一、逻辑回归与线性回归的联系与区别联系:-逻辑回归也被称为广义线性回归模型(generalized linear model),它与线性回归模型的形式基本上相同,都具有 hθ(x)=θ0+θ1...
2019-01-06 11:47:27
353
原创 机器学习算法梳理(一):线性回归
机器学习算法梳理(一):线性回归一、基本概念监督学习与无监督学习监督学习(supervised learning):从有标记的训练数据中推导出预测函数。有标记的训练数据是指每个训练实例都包括输入和期望的输出。即给定数据,预测标签。分类和回归是监督学习的两大重要问题。非监督学习(unsupervised learning):从无标记的训练数据中推断结论。最典型的无监督学习就是聚类分析,它...
2019-01-04 18:53:49
391
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人