前言 很多rust教程里,把生命周期标记'a视为rust中最难理解的一部分,尤其某些函数、结构体,必须声明生命周期标记,否则会报错,这个情况尤其让很多人难以理解,对着官方教程...
前言 很多rust教程里,把生命周期标记'a视为rust中最难理解的一部分,尤其某些函数、结构体,必须声明生命周期标记,否则会报错,这个情况尤其让很多人难以理解,对着官方教程...
一、自引用类型 很多人知道自引用类型,那么这究竟是什么概念呢,其实就是以下的这个结构体: 在这里我们定义了一个SelfReferential的结构体,里面有个data和ptr...
以 git 为例,最安全的生成SSH命令大概就是: 但很多人偷懒,不设置 passphrase ,但其实这样很不安全。这里必须输入一个强 passphrase!因为私钥文件默...
提到反射,不得不提到接口interface,这是一对双生子。简单来说:接口是反射的基石,而反射是接口在运行时的“透视镜”。 一、interface{}的内部结构 Go 的反射...
如果你已经理解了 epoll 是什么,也看懂了 Golang 对它的封装,那我们现在就来回答一个更深的问题: 一个 goroutine 卡在 conn.Read 上的时候,它...
一、epoll是什么? epoll是 Linux 内核中一种高性能的 I/O 多路复用机制。 如果你正在开发一个需要同时处理成千上万个客户端连接的网络服务器(比如 Nginx...
在 Go 的并发编程中,sync.Once 是一个非常经典的同步原语。它的作用很简单:保证某个函数在并发环境中只执行一次。无论有多少个 goroutine 同时调用,目标函数...
本质原因是 Map 底层是 Hash 表。 当你插入键值对时: 对 key 做 hash 运算 根据 hash 结果决定存到哪个 bucket bucket 里再存具体数据 ...
一、数据结构 defer的核心数据结构是: 可以看到这里有个链表指针,这就是defer后进先出 (LIFO)的原因,链表是用头插法构建的,后写的defer在链表头部。 二、三...
Golang 程序运行的时候,内存中的对象可以标记为三色:白色、灰色、黑色。 想象你是一个保洁阿姨(GC),你的任务是把房间里没人要的垃圾扔掉,但最麻烦的是:你干活的时候,屋...
sync.Map非常适合读多的场景,因为sync.Map的readonly部分是无锁读取,所以效率跟普通map差不多。如果用一句话来理解 sync.Map,那就是 read ...
在 golang 的 WaitGroup 使用上,大概分成三点,就是计数、阻塞和唤醒。大致的代码结构是: 我开始认为里面采用了 channel 进行信号量管理,类似于 for...
在 Go 的并发编程中,我们通常会使用 sync.Mutex 或 sync.RWMutex 来保证线程安全。但在一些简单场景下,其实我们可以使用更轻量、更高性能的方式 —— ...
第一步:先说明 Redis 的两种持久化机制 Redis 的备份主要靠持久化,有两种方式: RDB(Redis Database)在指定时间间隔内生成数据集的时间点快照(一个...
一、最常见:对索引列做运算 / 函数 ❌ 1. 对索引列使用函数 原因: 数据库需要对每一行先算 YEAR(),无法走 B+Tree 有序结构。 ✅ 正确写法: ❌ 2. 对...
这是是LangChain官网的带checkpoint的“获取当地天气”的案例,这里头原本是做了结构化输出,但是这里我用agent.stream,来探求Agent Graph是...
在MacOS上安装ghcup,然后发现国内用官方推荐的安装方法总是出现问题。后来发现brew可以直接安装。有关haskell相关的安装shell命令如下:
占用存储槽空间,要让Proxy的存储排布和实现合约一致
Solidity合约代理模式的简单示例一、概述 这个合约示例中,我们有以下几个文件: 分别论述下文件的作用:Types.sol定义了一些基本类型,与业务逻辑无关;IProcessor.sol:关键合约,定义了Pr...
在我们用solidity的for循环时,大概是这样用的: 其实在新版本的solidity中,由于uint类型在进行运算时会自动检测溢出,所以在for循环中,有一个改进的写法:...
在比较下面合约中的两个方法时: 函数写入类型gas消耗量getMyStructAttributes重复索引7528getMyStructAttributesWithTempS...