文章
273
标签
62
分类
34
首页
文章
标签
分类
资源
留言
猿码记
搜索
首页
文章
标签
分类
资源
留言
猿码记
Go学习(十五):异常处理
发表于
2020-08-29
|
编程
Go
基础篇
1.介绍错误是指程序中出现不正常的情况,从而导致程序无法正常运行。Go语言中没有try...catch来捕获错误,而是通过defer+recover+panic模式来实现捕捉错误信息。 2. error接口2.1 语法Go语言通过内置的错误类型提供了非常简单的错误处理机制,即error接口。该接口的定义如下: type error interface { Error() string} 2.2 函数返回错误对于大多数函数,如果要返回错误,大致上都可以定义为如下模式,必须将error作为多种返回值中的最后一个。 // 函数返回错误func Demo(参数列表...)(x ...
Go学习(十四):面向对象-接口(interface)
发表于
2020-08-28
|
编程
Go
基础篇
虽然Go语言没有继承和多态,但是Go语言可以通过匿名字段实现继承,通过接口实现多态。 1.介绍1.1 概念在Go语言中,接口是一组方法签名。接口指定了类型应该具有的方法,类型决定了如何实现这些方法。当某个类型为接口中的所有方法提供了具体的实现细节时,这个类型就被称为实现了该接口。接口定义了一组方法,如果某个对象实现了该接口的所有方法,则此对象就实现了该接口。 1.2 声明语法type 接口名称 interface { Method1([参数列表]) [返回值列表] Method2([参数列表]) [返回值列表] ...} 示例 // 定义一个接口ty ...
Go学习(十三):面向对象-方法(method)
发表于
2020-08-27
|
编程
Go
基础篇
Go没有沿袭传统面向对象编程中的诸多概念,也没有提供类(class),但是它提供了结构体(struct),方法(method)可以在结构体上添加。与类相似,结构体提供了捆绑数据和方法的行为。 1.介绍1.1 概念Go语言同时有函数和方法,方法的本质是函数,但是方法和函数又有所不同。 1.2 方法和函数的区别 函数(function)是一段具有独立功能的代码,可以被反复多次调用,从而实现代码复用。 方法(method)是一个类的行为功能,只有该类的对象才能调用。 方法有接受者,而函数无接受者。 函数不可以重名,而方法可以重名。只要接受者不同,方法名就可以相同。 2. 使用2.1 基本语法f ...
Go学习(十二):面向对象-结构体(struct)
发表于
2020-08-26
|
编程
Go
基础篇
Go没有沿袭传统面向对象编程中的诸多概念,也没有提供类(class),但是它提供了结构体(struct),方法(method)可以在结构体上添加。与类相似,结构体提供了捆绑数据和方法的行为。 1. 介绍1.1 概念单一的数据类型已经满足不了现实开发需求,于是 Go 语言提供了结构体来定义复杂的数据类型。结构体是由一系列相同类型或不同类型的数据构成的数据集合。结构体的定义只是一种内存布局的描述,只有当结构体实例化时,才会真正地分配内存。因此必须在定义结构体并实例化后才能使用结构体的字段。 1.2 语法type 类型名称 struct { field type field t ...
Go学习(十一):映射(map)
发表于
2020-08-25
|
编程
Go
基础篇
1.定义map是一种集合,可以像遍历数组或切片那样去遍历它。因为map是由Hash表实现的,所以对map的读取顺序不固定。 1.1 注意事项 map是无序的,每次打印出来的map都会不一样,它不能通过index获取,而必须通过key获取。 map的长度是不固定的,和切片一样可以扩展。内置的len()函数同样适用于map,返回map拥有的键值对的数量。 同一个map中key必须保证唯一。 key的数据类型必须是可参与比较运算的类型,也就是支持==或!=操作的类型。 引用类型则不能作为key的数据类型。 map的value可以是任何数据类型。 map和切片一样,也是一种引用类型。 2. 声明语法 ...
Go学习(十):切片(slice)
发表于
2020-08-24
|
编程
Go
基础篇
1.切片的概念Go语言中数组的长度不可改变,但在很多应用场景中,在初始定义数组时,数组的长度并不可预知,这样的序列集合无法满足要求。Go中提供了另外一种内置类型切片(slice),弥补了数组的缺陷。从底层来看,切片引用了数组的对象。切片可以追加元素,在追加时可能使切片的容量增大。与数组相比,切片不需要设定长度,在[]中不用设定值,相对来说比较自由。 2.切片声明使用2.1 通过make//使用make()函数来创建切片var slice1 = make([]int,3)slice1[0] = 1slice1[1] = 2slice1[2] = 4fmt.Printf("通过make关 ...
Go学习(九):数组使用
发表于
2020-08-23
|
编程
Go
基础篇
1.数组的概念数组是相同类型的一组数据构成的长度固定的序列,其中数据类型包含了基本数据类型、复合数据类型和自定义类型。因为数组的内存是一段连续的存储区域,所以数组的检索速度是非常快的,但是数组也有一定的缺陷,就是定义后长度不能更改。 2.声明数组2.1 先声明后使用package mainimport "fmt"func main() { // 声明一个长度为3的整型数组 var arr [3]int arr[0] = 1 arr[1] = 3 arr[2] = 5 fmt.Printf("数组arr 类型: %T 值: %v& ...
Go学习(八):指针
发表于
2020-08-22
|
编程
Go
基础篇
1.什么是指针?指针是存储另一个变量的内存地址的变量。变量是一种使用方便的占位符,变量都指向计算机的内存地址。一个指针变量可以指向任何一个值的内存地址。 例如:变量a的值为100,存储在内存地址0x1040a124。变量b持有a的地址,则b被认为指向a。如下图 在Go语言中使用取地址符(&)来获取变量的地址,一个变量前使用&,会返回该变量的内存地址。如下程序获取变量a的内存地址 package mainimport "fmt"func main() { a := 1 fmt.Printf("指针地址: %p",&a)}// ...
Go学习(七):闭包使用
发表于
2020-08-21
|
编程
Go
基础篇
1. 什么是闭包闭包是由函数和与其相关的引用环境组合而成的实体。在实现深约束时,需要创建一个能显式表示引用环境的东西,并将它与相关的子程序捆绑在一起,这样捆绑起来的整体被称为闭包。函数 + 引用环境 = 闭包。 2. 闭包和函数的区别闭包只是在形式和表现上像函数,但实际上不是函数。具体区别如下: 函数运行时只有一个实例,函数体被定义后就确定了,不会在执行时发生变化。 闭包在运行时可以有多个实例,不同的引用环境和相同的函数组合可以产生不同的实例。 函数本身不存储任何信息,只有与引用环境结合后形成的闭包才具有记忆性。 函数是编译器静态的概念,而闭包是运行期动态的概念。 3. 使用对比开发一个 ...
Go学习(六):函数使用
发表于
2020-08-20
|
编程
Go
基础篇
1.函数申明1.1 声明语法func funcName( param type ) (output1 type1, output2 type2) { //这里是处理逻辑代码 //返回多个值 return value1, value2 } 1.2 语法解析 func: 函数关键字, funcName: 指函数名,在同一个包内,函数不能重名。 param: 参数列表;参数列表指定的是参数类型、顺序及参数个数,函数可以不包含参数也可以不包含。 output1 type1, output2 type2: 返回值列表,Go语言的函数可以返回多个值。返回值可以是返回数 ...
Go学习(五):流程控制
发表于
2020-08-19
|
编程
Go
基础篇
1.条件判断(if)1.1 if1.语法结构if 布尔表达式 { // 布尔表达式为true时执行} 2. 使用a := 10if a > 3{ fmt.Println("a > 3 为true")} 1.2 if…else1.语法结构if 布尔表达式 { // 布尔表达式为true时执行} else { // 布尔表达式为false时执行} 2.使用在if之后,条件语句之前,可以添加变量初始化语句,使用“;”进行分隔。 if a := 10; a > 3 ...
Go学习(四):数据类型
发表于
2020-08-18
|
编程
Go
基础篇
1.类型介绍在Go语言中,有基本数据类型(原生数据类型)和复合数据类型(派生数据类型)。 2.值类型2.1 整型整型分两大类: 有符号整型:int8、int16、int32(别名:rune)、int64、int。 无符号整型:uint8(别名:byte)、uint16、uint32、uint64、uint。 整型取值范围: 2.2 浮点数浮点型表示存储的数据是实数,浮点类型分: float32 和float64 两种,默认是float64 类型 字节 说明 float32 4 32位的浮点型 float64 8 64位的浮点型 声明使用: var x float ...
1
…
15
16
17
…
23
刘庆辉
人生需要 “归零”,每过一段时间都要将过去 “清零”,让自己重新开始。
文章
273
标签
62
分类
34
Follow Me
公告
欢迎来到我的博客,互动请留言~
最新文章
Go常用包(三十六):自动化文档生成[swagger]
2024-06-20
Python框架篇(9):FastApi-SQLAlchemy集成
2024-05-10
Python框架篇(8):FastApi-文件处理
2024-04-01
Python框架篇(7):FastApi-依赖项
2024-03-26
AI学习(5):PyTorch-核心模块(Autograd):自动求导
2024-02-27
分类
AI学习
6
使用篇
1
使用篇(一):Ai绘图-Stable Diffusion WebUI
基础篇
5
AI学习(1):初识AI,踏上未来之旅
AI学习(2):PyTorch2.1 环境安装
AI学习(5):PyTorch-核心模块(Autograd):自动求导
AI学习(3):PyTorch-初识张量
AI学习(4):PyTorch实战-手写数字识别
微服务
18
Docker
4
创建自己的Docker镜像
Docker常用命令整理
查看Docker容器日志方法
基于Docker搭建禅道
Kubernetes
14
K8s学习(一):环境准备
K8s学习(二):集群部署
K8s学习(三):架构简述
K8s学习(四):运行应用
K8s学习(五):容器运行时Container
K8s学习(六):go服务部署(升级&回滚)
K8s学习(七):深入了解Pod
K8s学习(八):Pod健康检查
K8s学习(九):深入Service暴露
K8s学习(十一):Secret和ConfigMap
K8s学习(十):数据管理
K8s学习(十二):Helm入门
K8s学习(十三):部署服务[上篇]
K8s学习(十四):部署服务[下篇]
架构进阶
17
ElasticSearch
8
ElasticSearch(一):核心概念整理
ElasticSearch(二):架构设计总览
ElasticSearch7(三):索引(index)操作
ElasticSearch7(四):映射(mapping)操作
ElasticSearch7(五):文档操作-增改删
ElasticSearch7(六):文档查询之(Uri Search)
ElasticSearch7(八):聚合查询
ElasticSearch7(七):文档查询之(Request Body Search)
Mysql
8
MySQL深入(二):B+树索引分类和添加规则
MySQL深入(三):联合索引和覆盖索引
MySQL深入(一):B+树的演化和操作
SQL优化思路纪要
MyISAM和InnoDB之存储结构对比
在MySql中批量执行更新SQL语句
Innodb中的事务隔离级别和锁的关系
MYSQL性能优化神器之Explain使用
RabbitMQ
1
RabbitMQ之消息类型
理论知识
10
数据结构-单向链表
数据结构-双向链表、循环链
Http-头部属性
Http-状态码
其他术语
写时复制
存储单位
幂等性
TPS/QPS/PV/UV
进程、线程、协程
编程
202
Go
110
Gin框架
18
Gin框架(一):快速入门
Gin框架(十):日志使用(logrus+lumberjack)
Gin框架(十二):更多HTTP服务使用
Gin框架(三):路由初使用
Gin框架(四):路由组使用
Gin框架(五):参数接收
Gin框架(十一):验证器Validator使用
Gin框架(二):服务启动源码分析
Gin框架(六):参数绑定
Gin框架(九):BasicAuth授权认证中间件使用
Gin框架(七):文件上传
Gin框架(八):中间件
Gin集成(一):集成viper配置解析包
Gin集成(二):集成高性能日志zap
Gin集成(三):集成全功能ORM框架-GORM
Gin集成(四):集成JWT
Gin集成(五):集成Redis操作库
Gin集成(六):集成ElasticSearch操作库
基础篇
31
AI学习(1):初识AI,踏上未来之旅
AI学习(2):PyTorch2.1 环境安装
AI学习(5):PyTorch-核心模块(Autograd):自动求导
AI学习(3):PyTorch-初识张量
AI学习(4):PyTorch实战-手写数字识别
实战篇
6
基金分析系统(一):项目介绍
基金分析系统(三):爬取基金收益榜单
基金分析系统(二):通过数据模型建表
基金分析系统(四):爬取基金详情信息
基金分析系统(五):爬取基金持仓信息
基金分析系统(六):通过docker-compose项目部署
实践篇
5
框架开发(一):目录介绍和路由设计
框架开发(二):集成Gorm及使用
框架开发(三):集成Go-Redis及使用
框架开发(四):集成LogRus及使用
框架开发(五):集成Go-ElasticSearch及使用
常用包篇
36
Go常用包(十):viper配置文件解析
Go常用包(一):strings(字符串操作)包使用
Go常用包(十一):sort排序和查询
Go常用包(十二):rune字符操作包(unicode)
Go常用包(十三):Uber开源之高性能日志库(zap)
Go常用包(十四):高性能缓存库BigCache
Go常用包(十五):系统基本操作包使用(os)
Go常用包(十六):crypto之AES加解密
Go常用包(十七):crypto之RSA非对称加解密
Go常用包(十八):结构体匿名字段的Json序列化、反序列化
Go常用包(二):strconv(字符串转换)包使用
Go常用包(十九):全功能ORM框架[gorm]使用
Go常用包(二十):数学计算和常数(math)
Go常用包(二十一):360开源高性能excel库(Excelize)
Go常用包(二十二):JWT在Golang中的实现(jwt-go)
Go常用包(二十三):操作redis开源库(go-redis)
Go常用包(二十四):单元测试(testinng)
Go常用包(二十五):ElasticSearch客户端的实现
Go常用包(二十六):知名爬虫框架Colly
Go常用包(二十七):定时任务管理库Cron
Go常用包(二十八):构建现代CLI应用库Cobra
Go常用包(二十九):性能调试利器使用(上)
Go常用包(三):time(时间)包使用
Go常用包(三十):性能调试利器使用(中)
Go常用包(三十一):性能调试利器使用(下)
Go常用包(三十二):现代的Go工具库go-funk
Go常用包(三十三):高性能json解析器
Go常用包(三十四):高性能http客户端fasthttp
Go常用包(三十五):高性能的goroutine池[ants]
Go常用包(三十六):自动化文档生成[swagger]
Go常用包(四):fmt包使用
Go常用包(五):ioutil包使用
Go常用包(七):context上下文
Go常用包(六):bufio有缓存的IO包使用
Go常用包(八):sync辅助并发安全
Go常用包(九):flag命令行参数解析
进阶篇
14
Go底层探索(一):编译器
Go底层探索(二):字符串
Go底层探索(三):切片
Go底层探索(四):哈希表Map上篇
Go底层探索(五):哈希表Map下篇-扩容
Go底层探索(六):延迟函数defer
Go底层探索(七):并发编程[上]-协程的由来
RPC编程(一):初步了解RPC
RPC编程(二):快速入门使用
RPC编程(三):gRPC快速入门
RPC编程(四):protobuf语法学习
RPC编程(五):gRPC中的Token认证
RPC编程(六):gRPC中的TLS认证
RPC编程(七):gRPC中的截取器
Java
46
基础篇-数据类型及运算
基础篇-异常处理
基础篇-了解多线程
基础篇-初识Lambda
基础篇-Lambda操作集合
基础篇-Stream使用
基础篇-Collect方法详解
基础篇-Lambda操作Map
基础篇-FutureTask初使用
Java实践篇-使用Md5/Sha1/base64
基础篇-数组
基础篇-初始化块
基础篇-类
基础篇-注解
基础篇-泛型
基础篇-枚举
基础篇-集合
基础篇-map操作
Java实践篇-Api接口多版本控制
基础篇-抽象类和接口
SpringBoot学习(一):controller注解使用
SpringBoot学习(十):事务使用(@Transactional)
SpringBoot学习(十二):Mybatis连表(一对一)使用实践
SpringBoot学习(十三):Mybatis连表(一对多)使用实践
SpringBoot学习(十一):Mybatis批量插入数据
SpringBoot学习(十四):Mybatis连表(多对多)使用实践
SpringBoot学习(十八):SLF4J+Logback-日志使用
SpringBoot学习(十五):Mybatis多数据源实践
SpringBoot学习(十七):配置文件值注入
SpringBoot学习(十六):配置文件使用
SpringBoot学习(十九):初探Logback
SpringBoot学习(二):Swagger文档集成
SpringBoot学习(二十):Logback配置文件详解(上篇)
SpringBoot学习(二十一):Logback配置文件详解(下篇)
SpringBoot学习(二十二):约定编程模拟AOP的实现
SpringBoot学习(二十四):AOP之切点指示器
SpringBoot学习(二十三):AOP使用实践
SpringBoot学习(二十五):AOP之引入增强(@DeclareParents)
SpringBoot学习(二十六):AOP之多切面使用
SpringBoot学习(三):集成Mybatis
SpringBoot学习(四):集成Mybatis代码生成器(MyBatis Generator)
SpringBoot学习(五):验证器(hibernate-validator)使用
SpringBoot学习(六):集成阿里数据源(Druid)
SpringBoot学习(七):集成Redis并结合Spring Cache使用
SpringBoot学习(八):拦截器的使用
SpringBoot学习(九):验证码(EasyCaptcha)使用
PHP
11
开发compose包
PHP常用数组函数整理
PHP中的并发请求实践
搭建docker+PHP7+phpstorm+xdebug开发环境
基于laradock+phpstorm配置单元测试
PHP常用魔术函数整理
记一次在PHP中使用正则删除非汉字字符串
PHP常用字符串函数整理
基于laradock搭建非侵入式性能监控平台
PHP7更新变更差异整理
PHP-FPM配置详情及优化
Python
33
FastAPI框架
9
Python框架篇(1):FastApi-快速入门
Python框架篇(2):FastApi-参数接收和验证
Python框架篇(3):FastApi-响应模型
Python框架篇(4):FastApi-错误处理
Python框架篇(6):FastApi-配置管理
Python框架篇(5):FastApi-中间件使用
Python框架篇(7):FastApi-依赖项
Python框架篇(9):FastApi-SQLAlchemy集成
Python框架篇(8):FastApi-文件处理
基础篇
10
AI学习(1):初识AI,踏上未来之旅
AI学习(2):PyTorch2.1 环境安装
AI学习(5):PyTorch-核心模块(Autograd):自动求导
AI学习(3):PyTorch-初识张量
AI学习(4):PyTorch实战-手写数字识别
常用库
14
Python库学习(十):Matplotlib绘画库
Python库学习(一):日期和时间
Python库学习(十一):数据分析Pandas[上篇]
Python库学习(十二):数据分析Pandas[下篇]
Python库学习(十四):ORM框架-SQLAlchemy
Python库学习(二):数学计算(random、math、statistics)
Python库学习(四):json序列化和反序列
Python库学习(五):图像处理-Pillow
Python库学习(三):文件目录操作
Python库学习(六):科学计算库Numpy[上篇]:创建、访问、赋值
Python库学习(七):Numpy[续篇一]:结构数组
Python库学习(十三):爬虫框架-Scrapy
Python库学习(八):Numpy[续篇二]:数组操作
Python库学习(九):Numpy[续篇三]:数组运算
Vue
1
了解vue实例和生命周期
正则表达
1
正则使用
踩坑
5
Row size too large (> 8126) for mysql
服务-定时任务(crontab)使用总结
Mysql8采坑记录归纳
使用docker的采坑纪要
记录Git使用采坑纪要
运维
11
Nginx
3
Nginx反向代理使用
Nginx限流(防恶意请求)实践
Nginx配置调优
其他
1
批量更新多个服务器代码
命令
3
curl
ls
scp
服务
4
Centos-在Centos7中使用防火墙
Maven私服搭建(nexus3)和使用
记在Linux中搭建nfs文件共享的一次经历
RabbitMQ安装方法总结
面试题
4
PHP常见排序算法汇总
消息队列(MQ)相关面试题整理
PHP相关面试题整理
Redis相关面试题整理
标签
AI
AOP
Anaconda
Centos
ES
ElasticSearch
FastAPI
Gin
Go
Go入门
Go实战
Go实践
Go工具
Go底层
Go推荐包
Go编码规范
Go规范
Java
Java实践
Json
Jupyter
Kubernetes
Logback
MQ
Matplotlib
Mybatis
Mysql
Numpy
ORM
Pandas
Pillow
Python
Python框架篇
RPC
RabbitMQ
SQLAlchemy
Scrapy
SpringBoot
Vue
composer
文章
六月 2024
1
五月 2024
1
四月 2024
1
查看更多
网站资讯
文章数目 :
273
已运行时间 :
本站总字数 :
516.8k
本站访客数 :
本站总访问量 :
繁
本地搜索
由
hexo-generator-search
提供支持