
go
文章平均质量分 56
唐诗c
这个作者很懒,什么都没留下…
展开
-
grpc拦截器及携带metadata信息
grpc拦截器及携带metadata信息原创 2022-06-19 21:49:58 · 257 阅读 · 0 评论 -
rec 之 metadata
rpc之metadata原创 2022-06-19 17:57:08 · 142 阅读 · 0 评论 -
proto 基础
proto 语法 基础原创 2022-06-19 16:45:08 · 157 阅读 · 0 评论 -
go grpc四种数据流
go gprc 四种数据流原创 2022-06-12 18:25:41 · 191 阅读 · 0 评论 -
22. beego的安装
安装beegobeego 存在1.0版本 与 v2版本 推荐使用v2beego v2地址文档地址go get -u github.com/beego/beego/v2安装 bee 工具bee 工具是一个为了协助快速开发 beego 项目而创建的项目,通过 bee 您可以很容易的进行 beego 项目的创建、热编译、开发、测试、和部署。go get -u github.com/beego/bee/v2bee 常用命令version 命令 动态获取 bee、beego 和 Go 的原创 2021-10-10 17:13:16 · 368 阅读 · 0 评论 -
21. Go-fmt.Printf 格式化输出
一直都搞不清楚 fmt.Printf 格式化输出的 各种参数是什么意思。虽然无关大雅吧,但是存在即合理,这么多人用一定有其独到之处????。fmtfmt包实现了类似C语言printf和scanf的格式化I/O。格式化动作(‘verb’)源自C语言但更简单。分类,大概可以按一下几种进行划分。通用:%v 值的默认格式表示%+v 类似%v,但输出结构体时会添加字段名%#v 值的Go语法表示%T 值的类型的Go语法表示%% 百分号布尔值:%t 单词true或false整数:原创 2021-10-10 12:09:09 · 167 阅读 · 0 评论 -
20. Go练习题
for循环经典练习题 百元买百鸡package mainimport "fmt"func main() { /* 百元百鸡,一百元钱买100只鸡,公鸡5元一只,母鸡3元一只,小鸡1元3个。 公鸡:0-20 母鸡:0-33 小鸡:100-公鸡-母鸡 */ for i := 0; i <= 20; i++ { // 公鸡 for j := 0; j <= 33; j++ { // 母鸡 k := 100 - i - j // 小鸡的数量原创 2021-10-10 12:09:28 · 127 阅读 · 0 评论 -
19. Go-Channel
ChannelChannel是Go中的一个核心类型,你可以把它看成一个管道,通过它并发核心单元就可以发送或者接收数据进行通讯(communication)。Channel可以作为一个先入先出(FIFO)的队列,接收的数据和发送的数据的顺序是一致的。Channel的创建channel必须先创建再使用: ch := make(chan int) 或者 make(chan int, 100), 否则会永久阻塞。二者的区别在于 一个创建时初始化了容量,一个无Channel类型 Channel原创 2021-10-10 12:09:47 · 103 阅读 · 0 评论 -
18. Go-goroutine - 协程
goroutinegoroutine是Go并行设计的核心。goroutine说到底其实就是协程,但是它比线程更小,十几个goroutine可能体现在底层就是五六个线程,Go语言内部帮你实现了这些goroutine之间的内存共享。执行goroutine只需极少的栈内存(大概是4~5KB),当然会根据相应的数据伸缩。也正因为如此,可同时运行成千上万个并发任务。goroutine比thread更易用、更高效、更轻便。协程的特点协程是一个轻量级的线程,此处可以与进程、线程、协程 进行对比Go协程是非抢原创 2021-10-10 12:10:00 · 125 阅读 · 0 评论 -
17. Go-文档doc
文档doc每一个 package 都应该有相关注释,在 package 语句之前的注释内容将被默认认为是这个包的文档, package 的注释应该提供一些相关信息并对整体功能做简要的介绍。在日常开发过程中,可以使用go doc和godoc命令生成代码的文档。go doc 用法go doc 命令打印Go语言程序实体上的文档。可以使用参数来指定程序实体的标识符。go doc 用法 go doc [-u] [-c] [package|[package.]symbol[.methodOrField]原创 2021-10-10 12:10:36 · 183 阅读 · 0 评论 -
16. Go语言-测试
testingGo自带了测试框架和工具,在testing包中,以便完成单元测试(T类型)和性能测试(B类型)。一般测试代码放在*_test.go文件中,与被测代码放于同一个包中。单元测试语法格式 func TestXxx(*testing.T)Xxx 可以是任何字母数字字符串,但是第一个字母不能是小写字母。测试方法有:Fail: 标记失败,但继续执行当前测试函数FailNow: 失败,立即终止当前测试函数执行Log: 输出错误信息Error: Fail + LogFata原创 2021-10-10 12:10:55 · 139 阅读 · 0 评论 -
15. Go-闭包函数式编程
闭包函数式编程闭包go 支持闭包闭包是指有权访问另一个函数作用域中的变量的函数, 在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。闭包的用途在于读取其他函数内部的变量创造一个私有作用域package mainimport "fmt"func addSum() func(int) int { sum := 0 return func(n int) int { sum = sum + n fmt.Println(sum + n) return原创 2021-10-10 12:11:25 · 84 阅读 · 0 评论 -
14. Go-异常-panic
panic异常panic异常与error的区别在于, panic异常会中断程序的继续执行。不是所有的panic异常都来自运行时,直接调用内置的panic函数也会引发panic异常;panic函数接受任何值作为参数。当某些不应该发生的场景发生时,我们就应该调用panic。func testb() { //显式调用panic函数,导致程序中断 panic("this is a panic test")} func testc() { fmt.Println("cccccccccccc")原创 2021-10-10 12:11:11 · 275 阅读 · 0 评论 -
13. Go-异常-error
异常异常分为三种,编辑时异常编译时异常运行时异常,通常 error 返回一般异常,panic 返回致命异常error异常error 异常不会中断程序执行Go 语言通过内置的错误接口提供了非常简单的错误处理机制。error类型是一个接口类型,这是它的定义:type error interface { Error() string}创建一个error创建一个 error 最简单的方法就是调用 errors.New函数,它会根据传入的错误信息返回一个新的 err原创 2021-10-09 09:17:42 · 144 阅读 · 0 评论 -
11. Go接口
go接口Go 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口。Go 语言的接口设计是非侵入式的,接口编写者无须知道接口被哪些类型实现。而接口实现者只需知道实现的是什么样子的接口,但无须指明实现哪一个接口。编译器知道最终编译时使用哪个类型实现哪个接口,或者接口应该由谁来实现。Go语言中使用接口来体现多态,是duck-type(鸭子类型)的一种体现。当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为原创 2021-10-09 09:17:08 · 110 阅读 · 0 评论 -
10. Go常用命令及gopm
generate 命令是在Go语言 1.4 版本里面新添加的一个命令,当运行该命令时,它将扫描与当前包相关的源代码文件,找出所有包含 注意该特殊注释必须在 源码文件中;每个源码文件可以包含多个 特殊注释;运行命令时,才会执行特殊注释后面的命令;当命令执行出错时,将终止程序的运行;特殊注释必须以格式 正则表达式匹配命令行,仅执行匹配的命令; 输出被处理的包名和源文件名; 显示不执行命令; 显示并执行命令; 可以是在环境变量 中的任何命令。test 命令,会自原创 2021-10-09 09:16:28 · 454 阅读 · 0 评论 -
9. Go 包
Go语言是使用包来组织源代码的,包(package)是多个 Go 源码的集合,是一种代码复用方案。Go语言中为我们提供了很多内置包,如fmt、os、io等。任何源代码文件必须属于某个包,同时源码文件的第一行有效代码必须是语句,通过该语句声明自己所在的包。Go语言没有强制要求包名必须和其所在的目录名同名,但还是建议包名和所在目录同名,这样结构更清晰。同一个路径下只能存在一个package,一个package可以由多个源代码文件组成,包名的定义是不包括目录路径的,但是包在引用时一般使用全路径引用。比如在。...原创 2021-10-09 09:15:39 · 185 阅读 · 0 评论 -
8. Go-结构体方法
结构体方法Go语言同时有函数和方法,方法的本质是函数,但是方法和函数又具有不同点。函数function是一段具有独立功能的代码,可以被重复多次调用,从而实现代码复用。方法method是一个类的行为功能,只有该类的对象才能调用。Go语言的方法method是一种作用于特定类型变量的函数。这种特定类型的函数叫做Receiver接收者的概念类似于传动面向对象语言中的this或者self关键字。Go语言的接收者强调了方法具有作用对象,而函数没有作用对象。Go语言中,接收者的类型可以是任何类型,不仅仅是结原创 2021-10-09 09:14:47 · 2112 阅读 · 0 评论 -
7. Go 语言结构体 struct
Go 语言结构体 structGo 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。定义结构体及访问其成员结构体定义需要使用 type 和 struct 语句。struct 语句定义一个新的数据类型,结构体中有一个或多个成员。type 语句设定了结构体的名称。如果要访问结构体成员,需要使用点号 . 操作符 结构体.成员名"package mainimport "fmt"// 声明一个结构原创 2021-10-09 09:14:00 · 400 阅读 · 0 评论 -
6. go 集合map
map(集合)Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。Map 是一种集合,所以我们可以像迭代数组和切片那样迭代它。不过,Map 是无序的,我们无法决定它的返回顺序,这是因为 Map 是使用 hash 表来实现的。需要注意的是 map 作为函数参数传递是 是地址传递,函数内更改 map 会影响实参的值除了slice,map,function的内建类型都可以作为key, Struct类型不包含上次字段,也可以作为key。原创 2021-10-09 09:13:13 · 100 阅读 · 0 评论 -
5. go数组、切片
数组数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成。因为数组的长度是固定的,所以在Go语言中很少直接使用数组。go语言数组的声明声明语法 var 数组变量名 [元素数量]Type数组变量名:数组声明及使用时的变量名。元素数量:数组的元素数量,可以是一个表达式,但最终通过编译期计算的结果必须是整型数值,元素数量不能含有到运行时才能确认大小的数值。Type:可以是任意基本类型,包括数组本身,类型为数组本身时,可以实现多维数组。// 初始化一个数组变原创 2021-10-09 09:12:05 · 254 阅读 · 0 评论 -
4. go指针的使用
指针指针就是一个指向另一个内存地址变量的值go语言的指针go指针不能运算Go语言中的函数传参都是值拷贝,当我们想要修改某个变量的时候,我们可以创建一个指向该变量地址的指针变量。Go语言中的指针操作非常简单,只需要记住两个符号:&(取地址)和*(根据地址取值)。示例var a, b int= 1, 2swap2(&a, &b)fmt.Println(a, b)func swap2(a , b *int) { *a, *b = *b, *a}如何使原创 2021-10-09 09:11:34 · 175 阅读 · 0 评论 -
3. go中的函数
Go 语言函数在go 语言中 函数是一等公民go语言最少有一个main函数也就是 主函数(入口函数)函数声明告诉了编译器函数的名称,返回类型,和参数。可返回多个值, 返回值类型写在最后面函数可以作为参数没有默认参数,可选参数函数定义go 语言的函数 由 func 声明func funcTest() {}函数调用package mainimport "fmt"func main() { // 定义局部变量 var a int = 100 等同于 a := 100原创 2021-10-08 18:29:32 · 81 阅读 · 0 评论 -
2. 条件语句、循环语句
Go 语言提供了以下几种条件判断语句:if 语句 由一个布尔表达式后紧跟一个或多个语句组成。if else 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。你可以在 if 或 else if 语句中嵌入一个或多个 if 或 else if 语句。 // go 语言的if 判断条件没有 () // if 条件中可以声明变量 且在后边语句中使用 if fp, err := os.Open("./textTest/a.txt");原创 2021-10-08 18:23:57 · 107 阅读 · 0 评论 -
1. go变量、常量、枚举
go基础原创 2021-10-08 18:21:32 · 82 阅读 · 0 评论