Go
文章平均质量分 87
go日常工作学习与实战内容汇总
云梦软件
云梦软件致力于在校大学生计算机前沿技术复合型才培养,让每位IT学子从校园走上工作岗位时能无缝连接。
展开
-
k8s常用操作命令
必须以字母或数字开头,最多包含63个字符,可使用:字母、数字、连字符" - " 、点"."和下划线" _ "。如果指定了--resource-version,则更新将使用此资源版本,否则将使用现有的资源版本。可以指定计算资源需求(CPU-单位m、内存-单位Mi),即使用的最小资源请求(Requests),限制(Limits)的最大资源需求,Pod将保证使用在设置的资源数量范围。:使用补丁修改,更新资源的字段,也就是修改资源的部分内容。:配置应用的一些特定资源,也可以修改应用已有的资源。原创 2023-12-11 20:45:46 · 961 阅读 · 3 评论 -
头条golang面试题
1.0 5个人去一个海岛寻宝,最后一共找到了100枚金币。他们约定了一个分配方案,如下:五个海盗按照抽签的顺序依次提出方案,某一个人提出方案之后,剩余存活的人投票表决:方案需要获得超过半数人的认可之后才能被通过,否则方案提出者将会被扔进大海喂鲨鱼,某一个方案被通过后游戏就结束。注:每个人的投票都是在追求自己利益的最大化:保证自己不会被喂鲨鱼的前提下,尽量使自己分到更多的金币。题目的意思应该很清楚了,五个人依次按照抽签顺序给出自己的分配方案,如果某个方案没有获得通过,那么该方案的提出者就会被扔进大海喂鲨鱼原创 2021-01-28 23:55:50 · 782 阅读 · 1 评论 -
golang面试题整理
1.go的调度调度器有三个基本结构, 称为 G, M 和 P. 一个 G 是一个 goroutine, 一个 M 是一个操作系统线程, 一个 P 是一个(逻辑)处理器.调度器有确切的 GOMAXPROCS 数量的 P (GOMAXPROCS是一个环境变量和运行时函数, 用来设置程序中的并发度). 为了让 M 执行一个 G, 它必须获得一个P, 然后运行 G 直到停止. G 通过进行诸如 I/O 操作的系统调用, 阻塞一个 channel 操作, 调用 C 函数, 正在被预抢占(pre-emption原创 2021-01-28 23:37:32 · 1243 阅读 · 0 评论 -
算法-选择排序
编译器:goland编程语言 go选择排序的基本思想:每一趟在n-i+1(i=1,2,3…,n-1)个记录中选取关键字最小的记录与第i个记录交换,并作为有序序列中的第i个记录。例如:待排序列: 43,65,4,23,6,98,2,65,7,79第一趟: 2,65,4,23,6,98,43,65,7,79第二趟: 2,4,65,23,6,98,43,65,7,79第三趟: 2,4,6,23,65,98,43,65,7,79第四趟: 2,4,6,7,43,65,98,65,2...原创 2020-12-25 15:03:55 · 165 阅读 · 0 评论 -
二分查找方法
二分查找将一组有序数组一分为二,将要查找元素与分割点比较,有三种情况:1.查找元素比分割点大 。->在分割点右侧继续查找2.查找元素比分割点小。->在分割点左侧继续查找3.查找原始等于分割点。->直接返回。 使用二分查找方法,每经过一次查找,查找范围缩小一半,如果数组元素个数为n,假设n是3的幂。第一次查找后,剩下N/2个元素继续查,第二次(n/2)/2个元素需要继续查。则第i次比较后,剩下n/2i个元素需要继续搜索。当i=log2n(以2为底n的对数),只剩下一..原创 2020-12-24 22:12:42 · 632 阅读 · 0 评论 -
快速排序(golang版本实现)
1. 快速排序算法算法描述:是对插入算法的一种优化,利用对问题的二分化,实现递归完成快速排序 ,在所有算法中二分化是最常用的方式,将问题尽量的分成两种情况加以分析, 最终以形成类似树的方式加以利用,因为在比较模型中的算法中,最快的排序时间 复杂度为O(nlgn).算法步骤将数据根据一个值按照大小分成左右两边,左边小于此值,右边大于 将两边数据进行递归调用步骤1 将所有数据合并 package mainimport "fmt"func QuickSort(array []in.原创 2020-12-24 21:41:12 · 199 阅读 · 0 评论 -
golang中Context的使用场景总结
场景一:RPC调用在主goroutine上有4个RPC,RPC2/3/4是并行请求的,我们这里希望在RPC2请求失败之后,直接返回错误,并且让RPC3/4停止继续计算。这个时候,就使用的到Context场景二:PipeLinepipeline模式就是流水线模型,流水线上的几个工人,有n个产品,一个一个产品进行组装。其实pipeline模型的实现和Context并无关系,没有context我们也能用chan实现pipeline模型。但是对于整条流水线的控制,则是需要使用上Context的。这篇文章Pi原创 2020-12-20 17:24:12 · 1037 阅读 · 0 评论 -
GO性能优化
go性能优化1 内存优化1.1 小对象合并成结构体一次分配,减少内存分配次数做过C/C++的同学可能知道,小对象在堆上频繁地申请释放,会造成内存碎片(有的叫空洞),导致分配大的对象时无法申请到连续的内存空间,一般建议是采用内存池。Go runtime底层也采用内存池,但每个span大小为4k,同时维护一个cache。cache有一个0到n的list数组,list数组的每个单元挂载的是一个链表,链表的每个节点就是一块可用的内存,同一链表中的所有节点内存块都是大小相等的;但是不同链表的内存大小是不等原创 2020-12-20 16:59:38 · 154 阅读 · 0 评论 -
教务培训系统使用手册
校务管理系统操作手册业务咨询qq: 2878659797微信:fengxh03928882020年3月24日目录项目简介 1登录 1功能描述 13.1. 销售管理模块 23.1.1. 添加客户 23.1.2. 我的客户 33.1.3. 公海 33.1.4. 资源分配 43.1.5. 回访统计 53.1.6. 客户列表 53.1.7. 校区统计 53.1.8. 渠道统计 63.1.9. 来源统计 63.1.10. 课程顾问统计 73.2. 系统管理模块 73.2.原创 2020-06-07 23:54:27 · 1417 阅读 · 0 评论 -
Go 并發場景-仅需任意任务完成、所有任务完成才退出
Channel类型Channel类型的定义格式如下:ChannelType = ( "chan" | "chan" "<-" | "<-" "chan" ) ElementType .它包括三种类型的定义。可选的<-代表channel的方向。如果没有指定方向,那么Channel就是双向的,既可以接收数据,也可以发送数据。chan T // 可以接收和发送类型为 T 的数据chan<- float64 // 只可以用来发送 float64 类型原创 2020-05-08 23:45:40 · 209 阅读 · 0 评论 -
Go Channel
Go Channel 详解Channel类型blockingBuffered ChannelsRangeselecttimeoutTimer和Tickerclose同步Channel是Go中的一个核心类型,你可以把它看成一个管道,通过它并发核心单元就可以发送或者接收数据进行通讯(communication)。它的操作符是箭头 <- 。ch <- v // 发送值v到Channel ch中v := <-ch // 从Channel ch中接收数据,并将数据赋原创 2020-05-08 23:38:36 · 142 阅读 · 0 评论 -
go语言中的defer、panic、recover处理异常
go语言中的defer就像c++中的析构函数,但是go语言中defer的对象是函数(或者对象的方法),defer能保证在函数结束最后执行该方法(函数),但是有例外:如果在定义的方法中defer定义的方法如果在panic后面,defer定义的方法就无法执行到。panic 是用来表示非常严重的不可恢复的错误的。在Go语言中这是一个内置函数,接收一个interface{}类型的值作为参数。panic...原创 2020-04-30 07:54:19 · 276 阅读 · 0 评论 -
Go多态实现
Go本身不具有多态的特性,不能够像Java、C++那样编写多态类、多态方法。但是,使用Go可以编写具有多态功能的类绑定的方法。Go使用struct构建类,根据不同类调用不同的方法, 使用struct对象类型来消除了方法的模糊性。直接撸代码package ch12import ( "fmt" "testing")//实现多态type Code stringtype P...原创 2020-04-29 00:14:02 · 612 阅读 · 0 评论 -
Go——空接口与断言
经常地我们对一个接口值的动态类型是不确定的,如方法的形参为接口类型时,此时就需要检验它是否符合我们需要的类型。类型断言是一个使用在接口值上的操作。断言类型的语法:x.(T),这里x表示一个接口的类型,T表示一个类型(也可为接口类型)。一个类型断言检查一个接口对象x的动态类型是否和断言的类型T匹配。类型断言分两种情况:第一种,如果断言的类型T是一个具体类型,类型断言x.(T)就检查x...原创 2020-04-29 00:09:22 · 456 阅读 · 0 评论 -
GO 错误机制
与其他编程语言的差异1.没有异常机制2.error类型实现 error接口 Type error interface{Error() String}4.可以通过errors.New() 快速创建错误实例最佳实践: 及早失败,避免嵌套,直接上代码:package ch14import ( "errors" "testing")func ...原创 2020-04-28 23:58:12 · 158 阅读 · 0 评论 -
Go中字符串切分与组合
1.go 中主要使用 strings.Split 对指定分隔符进行分割存放在slice里,然后可以通过range 遍历取值2.可以使用 strings.Join 对slice用指定符号拼接组合一起3.使用 strconv.Itoa可以把数字转化为字符串直接撸代码:func TestStringFn(t *testing.T) { m := "A,B,C" parts := ...原创 2020-04-24 00:22:48 · 763 阅读 · 0 评论 -
GO 中实现扩展与复用
GO语言中没有继承,但是提供了一种扩展与复用。废话少说,直接上代码:package ch11import ( "fmt" "testing")type Pet struct {}func (p *Pet) Speak() { fmt.Printf("...")}func (p *Pet) SpeakTo(host string) { p.Spe...原创 2020-04-24 00:03:29 · 394 阅读 · 0 评论 -
Go语言中的Array、Slice、Map和Set使用
GO 数组Array在 Go 语言中数组是固定长度的数据类型,它包含相同类型的连续的元素,这些元素可以是内建类型,像数字和字符串,也可以是结构类型,元素可以通过唯一的索引值访问,从 0 开始。数组是很有价值的数据结构,因为它的内存分配是连续的,内存连续意味着可是让它在 CPU 缓存中待更久,所以迭代数组和移动元素都会非常迅速。数组声明和初始化数组声明和初始化通过指定数据类...原创 2020-04-23 00:17:24 · 418 阅读 · 0 评论 -
Go语言基础知识点分享
最近在加深对GO语言基础知识学习,巩固下基础,同时分享给朋友们go中单元测试通过 go test 进行测试go 中给我们提供一个包:testing,Go 为我们提供一些很好的功能,我们可以在不需要太多学习的情况下使用它们。若要在 Go 中开始使用测试,首先需要定义要测试的包。如果还没有,请创建一个名为 testing101 的包,并创建文件 sum.go,添加上下面的代码:p...原创 2020-04-22 23:43:04 · 200 阅读 · 0 评论 -
Go 语言函数作为实参
/* Go 语言可以很灵活的创建函数,并作为另外一个函数的实参*/package mainimport ( "fmt")type cb func(int) intfunc main() { fmt.Print("执行开始调用函数作为参数传递->") testCallback(1,callback) testCallback(2, func(...原创 2019-12-12 23:31:35 · 312 阅读 · 0 评论