![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
go
文章平均质量分 76
四面八方来
keep learning
展开
-
【go语言】error 错误处理详解
上述的哨兵错误无法携带上下文信息,使用自定义的错误类型可以包装底层错误携带更多的上下文信息。让我们看一下底层的 os.PathError 是怎么做的Op stringErr errorif err!= nil {ok {} else {运行结果如下图所示:它提供了底层执行了什么操作、哪个路径出了什么问题以及错误消息。这种方式相对于哨兵来说,虽然能够携带更多的上下文信息,但是同样需要调用者进行类型断言,存在强耦合。原创 2024-02-01 14:18:07 · 1978 阅读 · 0 评论 -
【go语言】结构体数据填充生成md错误码文件
这里使用pongo2这个模版引擎库进行md文件渲染。原创 2024-01-15 20:06:52 · 591 阅读 · 0 评论 -
【go语言】读取toml文件
全称为Tom's Obvious, Minimal Language,是一种易读的配置文件格式,旨在成为一个极简的数据序列化语言。TOML的设计原则之一是保持简洁性,易读性,同时提供足够的灵活性以满足各种应用场景。TOML文件由多个表(table)组成,每个表包含一组键值对。键值对由键名、等号(或冒号),以及对应的值组成。TOML支持嵌套表,可以构建层次结构,使得配置文件更加结构化。原创 2024-01-15 19:12:50 · 711 阅读 · 0 评论 -
【go语言】AST抽象语法树详解&实践之扫描代码生成错误码文档
为了能识别出代码中抛出错误码的地址和具体的错误码值,再根据错误码文件获取到错误码的具体值和注释,方便后续的排错,这里使用AST进行语法分析获取到代码中的目标对象。原创 2024-01-15 17:46:41 · 1272 阅读 · 0 评论 -
【go语言】select多路选择
在 Go 语言中,是一个标准库中非常常用的接口,它提供了在多个 goroutine 之间传递请求范围的截止日期、取消信号、存储值等信息的途径。主要用于在函数之间传递请求的截止日期、取消信号、跟踪信息以及其他请求范围的值。Deadline():返回Context的截止日期(即取消的时间点)和一个布尔值,表示是否设置了截止日期。Done():返回一个类型的通道,该通道关闭时表示Context被取消或者达到了截止日期。Err():返回一个错误,表示Context被取消的原因。原创 2024-01-06 01:05:44 · 1229 阅读 · 0 评论 -
【go语言】Chromeless简介及Chromedp库实现模拟登录截屏
chromeless是一个基于 Node.js 的库,用于通过无头浏览器(Headless Chrome)进行自动化测试和网页截图。它允许开发者使用 JavaScript 脚本来控制和操作浏览器,而无需实际打开浏览器窗口。以下是一些chromelesschromelesschromelesschromelesschromelesschromeless以下是一个简单的chromeless在这个示例中,chromeless打开了一个 Headless Chrome 浏览器,导航到了,然后截取了页面的屏幕截图。原创 2023-12-29 16:06:02 · 2210 阅读 · 0 评论 -
【go语言】CSP并发机制与Actor模型
多线程共享内存模型是一种并发编程模型,其中多个线程在同一个进程的地址空间中。这种模型允许多个线程相同的数据结构,但也引入了一些潜在的问题,其中最常见的问题之一就是竞态条件(Race Condition)。竞态条件(Race Condition)是多线程或多进程并发执行时,由于而导致程序的依赖于执行序列的结果的情况。这意味着多个线程或进程在访问和修改共享数据时,如果没有适当的同步机制,可能导致意外的结果。竞态条件的经典示例是两个线程同时对共享变量进行读取-修改-写入操作。原创 2023-12-26 15:34:58 · 1516 阅读 · 0 评论 -
【go语言】error错误机制及自定义错误返回类型
通过自定义两个错误变量,有利于判断错误类型通常我们判断是否存在错误而不是判断不存在错误,有利于尽早失败避免嵌套原创 2023-12-20 18:01:14 · 698 阅读 · 0 评论