自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 资源 (1)
  • 收藏
  • 关注

原创 tcp、http、rpc的区别

特性TCPHTTPRPC层级传输层应用层应用层连接面向连接基于 TCP(无状态)可以基于多种协议可靠性提供可靠的数据传输依赖于 TCP 的可靠性依赖于底层协议的可靠性用途数据流传输网页和 API 请求远程服务调用状态有状态无状态不固定,取决于实现TCP是一个底层协议,提供可靠的数据传输。HTTP是一个基于 TCP 的应用层协议,专注于超文本数据的传输。RPC是一种调用机制,允许程序远程调用其他程序的函数,通常用于微服务架构中。

2024-11-27 09:11:26 1222

原创 Gin 框架中间件详细介绍

【代码】Gin 框架中间件详细介绍。

2024-11-17 23:35:31 541

原创 docker save 和 docker load介绍

【代码】ocker save 和 docker load介绍。

2024-11-11 16:54:58 916

原创 User是一个结构体,users := []User{} 和users := []User区别

【代码】User是一个结构体,users := []User{} 和users := []User区别。

2024-11-10 22:40:41 388

原创 go get 和go install 的区别

【代码】go get 和go install 的区别。

2024-11-10 15:48:35 667

原创 gorm 结构体中 binding 和 msg 结构体标签

是结构体标签(struct tags),主要用于数据验证和错误信息提示。它们通常与 Gin 框架的。配合使用,以及用于处理表单验证。

2024-11-10 15:41:06 348

原创 golang 结构体作为形参传参

方法可能需要通过反射或其他机制来处理传入的模型实例,所以需要一个具体的实例而不是类型。结构体的实例(空实例)。

2024-11-06 23:51:59 273

原创 yii 常用一些调用

array('label'=>'主菜单', 'url'=>array('/admin/left_menu')),array('label'=>'系统主页', 'url'=>array('/site/login')),array('label'=>'会员中心', 'url'=>array('/site/login')),array('label'=>'注销', 'url'=>array('/site/login')),

2024-11-06 23:12:49 670 1

原创 golang的循环引用解决方法

循环引用是指在数据结构中,两个或多个实体相互引用,形成一个闭环。例如,在 Golang 的结构体中,如果结构体 A 包含结构体 B 的实例,而结构体 B 又包含结构体 A 的实例,这种情况就称为循环引用。

2024-10-31 16:13:16 834

原创 golang 高阶函数

接受函数作为参数: 高阶函数可以接收其他函数作为参数。返回函数: 高阶函数可以返回一个函数。

2024-10-31 15:25:03 490

原创 golang gin ShouldBind的介绍和使用

在 Go 语言的 Gin 框架中,ShouldBind是用于将请求中的数据绑定到结构体的一个方法。它简化了从请求中提取参数的过程,支持多种数据格式(如 JSON、表单、查询参数等)。以下是ShouldBind的介绍和使用示例。

2024-10-30 17:55:51 944

原创 golang flag介绍和使用

在 Go 语言中,flag包用于解析命令行标志。它提供了一种简单的方法来处理程序的输入参数。以下是对flag包的介绍和使用示例。

2024-10-30 14:23:38 557

原创 golang MarshalJson

通过实现方法,可以为 Go 的自定义类型提供灵活的 JSON 序列化控制。这使得在与 JSON 数据交互时,可以更好地控制数据的结构和格式。

2024-10-29 17:16:18 458

原创 golang switch v := data.(type)

这种类型匹配是 Go 语言提供的一种在运行时进行类型检查的机制。记住:case 后面的类型声明始终是用来匹配。语句中,case 后面的类型是用来匹配。这里的类型匹配是在运行时进行的。的实际类型,而不是匹配。

2024-10-29 16:43:03 388

原创 在 gRPC 中,客户端和服务端的 Protocol Buffers(Protobuf)生成的文件必须保持一致性,以确保通信正常。

客户端和服务端的.proto文件应保持一致,以确保接口和数据结构的兼容性。生成的代码可以在不同的项目中,但是必须基于相同的.proto定义。版本控制和向后兼容性是管理 gRPC 服务和客户端的重要方面。

2024-10-22 10:26:04 395

原创 go怎么处理线程之间的交互

Channels:用于 goroutine 之间的安全通信。WaitGroup:用于等待多个 goroutine 完成。Mutex:用于保护共享数据的访问,防止数据竞争。Select:用于处理多个 channel 的接收和发送。通过以上方法,您可以有效地处理 goroutine 之间的交互和同步。

2024-10-09 13:49:52 490

原创 golang类型断言

类型断言用于从接口提取具体类型的值。使用语法进行安全断言。可以使用switch语句处理多种类型的情况。直接断言可能会导致运行时错误,如果不确定类型,建议使用带ok的形式。通过类型断言,Go 语言提供了一种灵活的方法来处理接口类型和具体类型的转换。

2024-09-25 14:45:52 584

原创 golang reflect

Go 的reflect包提供了强大的功能,可以在运行时处理类型和变量。尽管反射很有用,但应谨慎使用,因为它可能会影响性能,并且代码的可读性可能降低。通常情况下,尽量使用静态类型和接口来保持代码的清晰和高效。

2024-09-25 11:28:39 574

原创 golang 反射的介绍和使用

反射在某些情况下非常有用,例如实现通用的序列化/反序列化库、依赖注入框架或者需要处理未知类型的场景。但是,在大多数日常编程中,应该优先考虑使用 Go 的静态类型系统和接口。Golang 中的反射(reflection)机制及其使用。反射是 Go 语言的一个强大特性,允许程序在运行时检查、操作和修改其own结构和行为。

2024-09-24 17:17:05 629

原创 bytes.split的用法和注意事项

是一个强大而灵活的函数,用于处理字节切片的分割操作。理解其行为,特别是在处理连续分隔符和边界情况时,对于正确使用该函数至关重要。在处理大量数据或性能关键的应用中,应当考虑其内存使用和性能特征。这个函数是 Go 标准库中。包的一个重要组成部分,用于分割字节切片。当然,我很乐意详细介绍。

2024-09-08 18:02:06 345

原创 golang fmt.Printf中 %q

是一个非常有用的格式动词,用于在字符串或字节切片周围加上引号。这对于调试和显示字符串内容时特别有用,因为它会显示出字符串的原始形式,包括转义字符。可以帮助你更清晰地看到字符串在内存中的实际表示,这在处理包含特殊字符的字符串或进行调试时非常有用。函数用于格式化输出,其中。

2024-09-08 15:57:27 1021

原创 []byte(“ “)和[]byte{‘ ‘}有什么区别

两者都可以用于创建包含空格字符的字节切片,选择哪种方式主要取决于个人偏好或代码的上下文。

2024-09-08 15:14:47 232

原创 golang os.Eixt的介绍和使用

os.Exit是一个强大的工具,用于控制 Go 应用程序的退出状态。合理使用可以确保程序在遇到错误时能够及时终止,并通过状态码向调用者传达信息。

2024-09-07 23:53:02 608

原创 golang panic

panic和recover提供了 Go 中处理异常的基本机制。合理使用可以帮助开发者在遇到严重错误时更好地控制程序的行为。如果你有更多问题或需要更深入的内容,请随时询问!

2024-09-07 23:47:10 614

原创 golang套接字

Go 语言的net包使得套接字编程变得简单而高效。通过使用 TCP 或 UDP 套接字,你可以轻松实现网络通信。若有其他问题或需要更深入的内容,请随时问我!

2024-09-06 14:19:32 783

原创 套接字的介绍

套接字是实现网络通信的基础,提供了一种灵活和强大的方式来在不同设备之间传输数据。通过理解套接字的工作原理和用法,开发者可以构建各种网络应用。如果有其他问题,欢迎继续提问!

2024-09-06 14:14:35 520

原创 golang中errors的方法

errors.New:创建新的错误。errors.Is:检查错误是否相等。errors.As:类型断言,检查错误类型。:获取底层错误原因。fmt.Errorf:创建格式化错误,常用%w来包装错误。这些方法使得 Go 的错误处理变得更加灵活和强大。

2024-09-04 16:36:49 685

原创 golang select介绍和使用,select中的case只会执行一个吗?

select用于多通道操作的选择。一次select只会执行一个case。如果有多个case可以执行,会随机选择一个。default子句可以避免select阻塞。

2024-09-04 15:58:14 564

原创 golang context介绍

context是 Go 中用于管理 goroutines 生命周期和信号传递的重要工具。它使得在并发编程中处理请求的取消、超时和传递值变得更加简单和安全。

2024-09-04 15:30:31 1004

原创 在Go语言中,不同类型之间转换的一些主要方法:

对于自定义类型,可以定义方法来实现转换。

2024-09-03 14:35:53 839

原创 strings.NewReader 、reader.Read(buf) 的介绍

和的组合使得我们可以逐步读取一个字符串的内容。Read操作通过内部的指针off来跟踪读取的位置,for循环会根据每次读取的结果来决定何时结束。通过合理设置缓冲区大小,可以控制每次读取的数据量,从而有效地处理字符串内容。

2024-09-03 14:00:55 515

原创 golang中return和defer的执行顺序的一道题

这个例子很好地展示了 Go 中命名返回值和 defer 语句的微妙之处。在使用 defer 和返回值时,理解这些细节非常重要,因为它们可能导致意料之外的行为。在Go语言中,return语句和defer语句的执行顺序是一个很重要的概念。),它会自动返回命名的返回值变量。更重要的是,defer 函数可以修改这个命名返回值。接下来我们看下面两个函数,看起来很相似,但它们的返回值是不同的。理解这些概念对于编写可靠的Go代码非常重要,尤其是在处理资源清理和错误处理时。的值,但这不会影响已经确定的返回值。

2024-09-03 11:05:22 957

原创 go.mod的相关的命令

这些命令帮助开发者有效管理 Go 模块及其依赖,通过合理使用,可以确保项目的依赖关系清晰且稳定。

2024-09-02 15:25:54 581

原创 golang中channel什么时候会阻塞

通道的阻塞机制是 Go 实现并发的重要特性,它确保了数据的安全传递和同步。在使用通道时,理解何时会阻塞对于编写高效的并发程序至关重要。

2024-08-21 11:51:08 769

原创 封装的 JavaScript 函数,用于判断一个变量是否为空,适用于不同类型的变量:

如果需要进一步的修改或功能,请告诉我!

2024-08-19 13:41:45 336

原创 golang channel什么情况main会deadlock?主协程是什么?

主协程main函数在 Go 程序中运行在主协程中。它是程序的入口点和主执行流程。main死锁的情况:通常发生在所有 goroutine 都在等待某个 channel 上的操作而无法继续执行时,导致程序无法继续运行,最终 Go 运行时会检测到死锁并报错。避免死锁的策略:确保所有的 channel 操作都有对应的发送和接收方,并且注意在适当的时候关闭 channel,以防止 goroutine 永远阻塞在接收操作上。还可以通过设计良好的并发控制机制(如使用或其他同步原语)来避免死锁。

2024-08-17 12:08:26 809

原创 golang channel什么情况下 main 会提前退出?主协程是什么?

主协程main函数运行在主协程中,它是程序的入口点,main函数退出时,程序结束。main提前退出的情况:如果main函数没有等待其他 goroutine 完成,或者程序中出现死锁,可能会导致main函数提前退出。解决方案:可以使用或 channel 来同步 goroutine,确保main函数在所有工作完成后再退出。

2024-08-17 12:06:40 894

原创 golang的channel阻塞例子分享

因为主 goroutine 和子 goroutine 是并发执行的,主 goroutine 不会被子 goroutine 的阻塞所影响,所以。,但此时通道中已经没有值了,通道也没有关闭,因此这个接收操作会阻塞,等待下一个值被发送到通道中。是一个带缓冲的通道,并且缓冲大小为 1,所以第一次发送值。发送成功后,主 goroutine 会继续执行。这行代码会从通道中接收一个值,成功接收后打印。不会阻塞,它会直接被存入通道。在子 goroutine 中,在主 goroutine 中,

2024-08-16 14:09:21 383

原创 golang的channel什么时候会阻塞?什么时候会恢复?

无缓冲 channel:发送和接收操作会相互阻塞,直到对方准备好。有缓冲 channel:发送操作在缓冲区未满时不会阻塞;接收操作在缓冲区为空时会阻塞。

2024-08-15 18:13:30 512

原创 golang为什么并发执行就不会导致死锁

并发执行:因 goroutines 的并行性,即使一个被阻塞,其他仍能继续执行。有效配对:发送和接收操作的有效配对确保了数据的顺利传递。调度机制:Go 的调度器设计帮助管理和调度 goroutines,避免死锁。

2024-08-15 15:53:47 327

电子商务系统后台

这是一个后台的电子商务系统。主要功能有对管理员、用户、产品、订单的管理,订单里有一个地图订单,可以显示下单的区域。

2018-05-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除