王盼达
做有趣有价值的事!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
5G核心网(5GC)开户中,DNN(Data Network Name,数据网络名称)
DNN是5G网络中用于标识外部数据网络的名称,相当于4G中的APN(Access Point Name),两者功能等价。原创 2025-03-27 09:27:44 · 748 阅读 · 0 评论 -
golang channel的实现原理介绍
在Go语言中,带有缓冲区的channel确实使用了环形队列来实现其缓冲区的管理。这种结构使得缓冲区能够高效地利用空间,并简化了数据的读写操作。而无缓冲区的channel则不涉及环形队列,而是通过直接的发送和接收操作来实现通信。原创 2025-03-24 17:22:27 · 452 阅读 · 0 评论 -
IPC 机制有哪些?
在 Go 语言中,进程间通信(IPC)可以通过多种机制实现,每种机制都有其适用场景和特点。原创 2025-03-21 11:15:07 · 36 阅读 · 0 评论 -
腾讯云golang一面面试题
这通常用于 NAT(网络地址转换)场景,防火墙会修改 TCP 选项中的信息,以便在数据包经过防火墙时保留原始 IP 地址。Go 的调度器会尝试高效地调度这些 goroutine,但如果每个 goroutine 都进行大量的计算或 I/O 操作,可能会导致 CPU 负载过高,影响程序性能。CPU 缓存会预取连续的内存块,按行读取时,内存访问模式更连续,缓存命中率更高。是 Go 的一个特性,允许为对象设置一个终结器(finalizer),当对象被垃圾回收时,会调用这个终结器。来实现类似 Go 的协程。原创 2025-03-21 10:47:53 · 210 阅读 · 0 评论 -
golang压力测试工具如hey或wrk使用介绍
选择合适的压力测试工具取决于具体的测试需求。如果需要高性能和复杂请求处理,wrk是一个不错的选择。如果需要一个轻量级且易于使用的工具,bombardier或httpit可能更适合。对于 Go 语言开发的服务,go-wrk和提供了更自然的集成方式。原创 2025-03-21 10:17:24 · 226 阅读 · 0 评论 -
如何创建一个自定义错误, 定义一个结构体并实现error接口
定义一个结构体来表示你的自定义错误。这个结构体可以包含任何你需要的字段,例如错误代码、错误消息等。通过定义一个结构体并实现error接口的Error()方法,可以轻松创建自定义错误。这种方式不仅提供了灵活性和可读性,还支持类型安全的错误处理。原创 2025-03-21 10:13:55 · 46 阅读 · 0 评论 -
container/heap使用场景介绍,及其包含的常用方法
包提供了一种高效的方式实现堆(优先队列)。通过实现接口,可以轻松地使用heap.Initheap.Push和heap.Pop等方法管理堆。堆在任务调度、优先队列、数据流处理等场景中非常有用。是 Go 标准库中的一个包,提供了一种实现堆(优先队列)的方式。堆是一种特殊的完全二叉树,其中每个父节点的值都小于或等于其子节点的值(最小堆),或者每个父节点的值都大于或等于其子节点的值(最大堆)。包提供了一些基本操作,使得实现堆变得简单高效。包提供了一种高效的方式实现堆(优先队列)。通过实现接口,可以轻松地使用。原创 2025-03-21 10:09:55 · 40 阅读 · 0 评论 -
golang使用邻接表或邻接矩阵表述图
稀疏图:使用邻接表。稠密图:使用邻接矩阵。具体需求:根据实际需求选择合适的数据结构。通过以上介绍和示例代码,你可以快速掌握如何在 Go 中使用邻接表和邻接矩阵来表示图。原创 2025-03-21 10:03:45 · 160 阅读 · 0 评论 -
golang container/list使用介绍
包提供了丰富的操作方法,用于管理双向链表。这些方法包括添加、删除、遍历、移动元素等,使得链表的操作非常灵活和高效。通过以上介绍和示例代码,你可以快速掌握包的使用方法,并在实际项目中应用双向链表。原创 2025-03-21 09:56:04 · 432 阅读 · 0 评论 -
golang errgroup用法介绍结合
errgroup是一个强大的工具,适用于需要并发执行多个任务并处理错误的场景。它提供了错误处理、上下文取消和并发限制等功能,使得并发编程更加简单和可靠。原创 2025-03-21 09:46:18 · 207 阅读 · 0 评论 -
2025年Go语言面试中常见的50道面试题,涵盖基础语法、并发编程、数据结构、错误处理
【代码】2025年Go语言面试中常见的50道面试题,涵盖基础语法、并发编程、数据结构、错误处理。原创 2025-03-18 18:02:19 · 311 阅读 · 0 评论 -
golang从入门到做牛马:第二十二篇-Go语言并发:多任务的“协同作战”
Go语言通过Goroutine和Channel提供了强大的并发支持,简化了传统线程模型的复杂性。通过合理使用Goroutine、Channel、调度器和同步工具,可以轻松实现高性能并发程序。并发是多任务的“协同作战”,合理使用并发,让你的程序更加高效和强大!原创 2025-03-12 10:30:08 · 305 阅读 · 0 评论 -
golang从入门到做牛马:第二十一篇-Go语言错误处理:优雅的“故障排除”
通过定义自定义类型,可以扩展error接口。自定义错误类型可以包含更多的上下文信息,便于调试和处理。= nil {fmt.Println(err) // 输出:cannot divide 10 by 0在这个例子中,结构体实现了error接口的Error()方法,因此可以作为错误返回。fmtGo语言的错误处理机制简单而强大,通过error接口、显式返回值、自定义错误、panic和recover,你可以清晰地处理各种错误情况。原创 2025-03-12 10:17:09 · 153 阅读 · 0 评论 -
golang从入门到做牛马:第二十篇-Go语言接口:行为的“契约”
接口是一种类型,它通过定义一组方法来规定类型的行为。只要一个类型实现了接口中定义的所有方法,它就被认为实现了该接口。接口的核心在于行为的定义,而不是具体的实现。接口定义使用关键字interface,其中包含方法声明。...在这个例子中,ShapeArea和Perimeter。任何类型只要实现了这两个方法,就被认为实现了Shape接口。接口是Go语言中非常强大的类型,它通过定义一组方法来规定类型的行为。接口的核心在于行为的定义,而不是具体的实现。通过接口,你可以实现多态、解耦和泛化,让代码更加灵活和强大。原创 2025-03-12 10:10:48 · 167 阅读 · 0 评论 -
golang从入门到做牛马:第十九篇-Go语言类型转换:数据的“变形术”
类型转换用于将一种数据类型的变量转换为另一种类型的变量。type_name:目标类型。expression:要转换的表达式。类型转换在Go语言中是显式的,必须明确指定目标类型。类型转换是Go语言中非常重要的功能,它允许你将一种数据类型的变量转换为另一种类型的变量。通过数值类型转换、字符串类型转换、接口类型转换和空接口类型,你可以灵活地处理不同类型的数据。类型转换是数据的“变形术”,合理使用类型转换,让你的代码更加灵活和强大!原创 2025-03-12 10:04:45 · 155 阅读 · 0 评论 -
golang从入门到做牛马:第十八篇-Go语言递归函数:函数的“自我调用”
递归是一种编程技术,允许函数调用自身。基准条件(Base Case):递归的终止条件,当满足这个条件时,递归停止。递归步骤(Recursive Step):函数调用自身,但每次调用时参数会有所不同,逐渐接近基准条件。recursion() /* 函数调用自身 */在使用递归时,开发者必须设置退出条件,否则递归将陷入无限循环中。递归函数是Go语言中非常强大的工具,它允许函数调用自身。递归通常用于解决那些可以通过更小的子问题来解决的问题,例如计算阶乘、生成斐波那契数列等。原创 2025-03-11 10:00:59 · 121 阅读 · 0 评论 -
golang从入门到做牛马:第十七篇-Go语言Map:键值对的“魔法袋”
Map是一种无序的键值对集合。每个键(key)都指向一个值(value),通过键可以快速检索对应的值。Map的键必须是可比较的类型(如intstringfloat64等),而值可以是任意类型。使用make()函数KeyType:键的类型。ValueType:值的类型。:可选参数,指定Map的初始容量。使用字面量...Map是Go语言中非常强大的数据结构,它允许你存储和查询键值对。通过键可以快速检索对应的值,这使得Map在处理需要快速查找的场景中非常高效。原创 2025-03-11 09:54:27 · 123 阅读 · 0 评论 -
golang从入门到做牛马:第十六篇-Go语言`range`:循环遍历的“瑞士军刀”
range。原创 2025-03-11 09:46:31 · 100 阅读 · 0 评论 -
golang从入门到做牛马:第十五篇-Go语言切片(Slice):动态数组的“魔法”
切片是对数组的抽象,它提供了一个动态的、可扩展的数组。切片的长度可以动态变化,这使得它在处理动态数据时非常灵活。切片的内部实现基于数组,但它比数组更灵活,功能更强大。声明一个未指定大小的数组使用make()函数创建切片在这里,length是切片的初始长度,capacity是切片的最大容量。切片是Go语言中非常强大的数据结构,它提供了动态数组的功能,使得处理动态数据更加灵活和高效。通过定义切片、初始化切片、使用len()和cap()函数、截取切片以及使用append()和copy()原创 2025-03-11 09:40:26 · 107 阅读 · 0 评论 -
golang从入门到做牛马:第十四篇-Go语言结构体:数据的“定制容器”
结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。Title:标题Author:作者Subject:学科ID:书籍ID结构体的定义需要使用type和struct语句。struct语句定义了一个新的数据类型,结构体中有一个或多个成员。type语句设定了结构体的名称。:结构体的名称。:结构体的成员,每个成员都有自己的名称和类型。以下代码定义了一个Books// 创建一个新的结构体。原创 2025-03-11 09:34:52 · 213 阅读 · 0 评论 -
golang从入门到做牛马:第十三篇-Go语言指针:内存的“导航仪”
在计算机中,每个变量都有一个内存地址,这个地址是变量在内存中的“物理位置”。Go语言使用符号来获取变量的内存地址。指针是一个变量,它存储了另一个变量的内存地址。通过指针,你可以间接访问和修改变量的值。var_name:指针变量的名称。var-type:指针指向的变量类型。:表示这是一个指针。指针是Go语言中非常强大的工具,它允许你直接操作内存地址。通过指针,你可以更高效地处理数据,尤其是在需要修改数据或处理大量数据时。指针的使用包括定义指针变量、为指针变量赋值和通过指针访问变量的值。原创 2025-03-11 09:25:11 · 426 阅读 · 0 评论 -
golang从入门到做牛马:第十二篇-Go语言数组:数据的“有序集合”
在Go语言中,声明数组需要指定数组的大小和元素类型。arrayName:数组的名称。size:数组的大小,即数组中元素的数量。dataType:数组中元素的数据类型。数组是Go语言中非常重要的数据结构,它允许你以有序的方式存储和访问一组具有相同类型的数据。通过声明、初始化和访问数组,你可以高效地处理数据集合。数组的大小是固定的,但你可以通过多维数组和向函数传递数组来扩展其功能。数组是数据的“有序集合”,合理使用数组,让你的代码更加有力量!原创 2025-03-10 10:07:15 · 115 阅读 · 0 评论 -
golang从入门到做牛马:第十一篇-Go语言变量作用域:变量的“生活圈”
理解变量的作用域是编写清晰、高效代码的关键。局部变量:仅在函数内部有效,生命周期从函数调用开始到函数返回结束。全局变量:在整个包中有效,生命周期从程序启动到程序结束。形式参数:仅在函数内部有效,生命周期从函数调用开始到函数返回结束。合理使用局部变量和全局变量,避免不必要的冲突,让你的代码更加清晰和易于维护。原创 2025-03-10 09:59:39 · 123 阅读 · 0 评论 -
golang从入门到做牛马:第十篇-Go语言函数:代码的“积木块”
/ 函数体func:函数由func关键字开始声明。:函数名称,它是函数的标识符。:参数列表,参数是函数的输入值,可以有多个参数,也可以没有参数。:返回类型,函数可以返回一个或多个值,也可以不返回任何值。函数体:函数的具体实现代码。函数是Go语言中不可或缺的一部分,它封装了一段可重复使用的代码,用于执行特定的任务。通过掌握函数的定义、调用、返回多个值、参数传递和用法,你可以更灵活地组织代码,提高代码的复用性和可读性。函数是代码的“积木块”,合理使用它们,让你的程序更加有力量!原创 2025-03-10 09:54:45 · 200 阅读 · 0 评论 -
golang从入门到做牛马:第九篇-Go语言条件语句与循环语句:掌控程序的“指挥棒”
条件语句和循环语句是Go语言中不可或缺的部分,它们让程序能够根据不同的条件执行不同的逻辑,并能够重复执行某些操作。通过掌握这些语句的使用方法,你可以更灵活地控制程序的流程,写出更强大、更灵活的代码。条件语句和循环语句是程序的“指挥棒”,合理使用它们,让你的代码更加有力量!原创 2025-03-10 09:48:15 · 213 阅读 · 0 评论 -
golang从入门到做牛马:第八篇-Go语言运算符-数学与逻辑的“魔法棒”
Go语言的运算符提供了丰富的功能,从基本的算术运算到复杂的逻辑和位操作,它们是编写高效代码的重要工具。通过掌握这些运算符的使用方法和优先级,你可以更灵活地控制程序的逻辑,写出更简洁、更高效的代码。运算符是Go语言中的“魔法棒”,合理使用它们,让你的代码更加有力量!原创 2025-03-10 09:41:12 · 138 阅读 · 0 评论 -
golang从入门到做牛马:第七篇-Go语言常量-不可变的“守护者”
这种方式的优点是清晰明了,缺点是稍微有点啰嗦。Go语言很智能,可以自动推断常量的类型。你只需要用const关键字声明常量,并直接赋值,Go会根据赋值的内容自动判断类型。这种方式的优点是简洁,减少了代码量。常量非常适合用于定义一些固定的值,比如数学常量、配置参数等。这些常量在程序运行过程中不会被修改,确保了代码的安全性和稳定性。max = 100常量是Go语言中不可或缺的一部分,它为程序提供了稳定和安全的数据存储。通过掌握常量的声明、初始化和使用方式,你可以更好地组织代码,提高编程效率。原创 2025-03-10 09:31:00 · 102 阅读 · 0 评论 -
golang从入门到做牛马:第六篇-Go语言变量存储数据的“小盒子”
变量是Go语言中最基础的概念之一,它为程序提供了存储和操作数据的能力。通过掌握变量的声明、初始化和使用方式,你可以更好地组织代码,提高编程效率。记住,变量的类型决定了它的行为,值类型独立存储值,而引用类型共享内存地址。合理使用变量,让你的代码更加清晰、高效。原创 2025-03-07 12:38:01 · 157 阅读 · 0 评论 -
golang从入门到做牛马:第五篇-Go语言数据类型数据的“百宝箱”
结构体用于组合不同类型的数据,创建自定义的数据类型。Age int结构体非常适合用于表示复杂的数据结构,如用户信息、配置文件等。Go语言提供了丰富多样的数据类型,从简单的布尔型和数字类型,到复杂的派生类型,每种类型都有其独特的用途和优势。掌握这些数据类型,就像是拥有了一个强大的“百宝箱”,可以帮助我们更好地组织和处理数据,编写出高效、优雅的代码。原创 2025-03-07 11:42:11 · 50 阅读 · 0 评论 -
golang从入门到做牛马:第四篇-Go语言基础语法
通过以上内容,我们已经掌握了Go语言的基础语法,包括标记、行分隔符、注释、标识符、字符串连接、关键字、格式化字符串和空格的使用。这些内容就像是Go语言的“宝藏”,为我们的编程之旅提供了坚实的基础。原创 2025-03-07 11:36:00 · 120 阅读 · 0 评论 -
golang从入门到做牛马:第三篇-Go程序的“骨骼架构”
Go语言的设计哲学是“少即是多”,它的基本结构简单而清晰,但功能却异常强大。通过合理的包管理、灵活的函数定义和高效的控制结构,Go程序不仅易于编写,还易于维护和扩展。无论你是初学者还是资深开发者,Go语言都会是一个值得信赖的伙伴。原创 2025-03-07 11:16:49 · 170 阅读 · 0 评论 -
golang从入门到做牛马:第二篇-go语言安装及开发环境配置
go语言开发IDE,我觉得最好用的是Goland,但是最好用的肯定不是免费的,如果是刚刚开始学习,而且不是土豪的话,可以选择VSCode,VSCode也很好用,不是不好用,VSCode是微软的免费的IDE,下载安装地址。如果你需要安装特定版本的Go,可能需要查找该版本的特定安装命令。通过以上步骤,你就可以在Ubuntu系统中成功设置Go代理,从而加速Go依赖包的下载。阿里云提供的Go代理服务,适用于中国大陆地区,可以提供较快的下载速度。安装好之后,你就可以找到他的图标直接打开了。将以下内容添加到你的。原创 2025-03-07 10:45:25 · 382 阅读 · 0 评论 -
golang从入门到做牛马:第一篇-我与golang的缘分,go语言简介
还记得2018年的夏天,刚毕业的我不知道该做些什么,于是自学了一周的go语言,想要找一份go语言工作的代码,当时的go还没有go mod来管理依赖包,在北京找了一个月的工作,找到了一个小公司做了后端开发,当然使用go语言开发,带着兴奋劲,年轻身体也好,边努力学习,边工作。原创 2025-03-07 09:52:57 · 240 阅读 · 0 评论