主页

Golang 隐式接口实战以及与 java 接口的区别

写在前面 最近在看 go语言学习指南-惯例模式与编程实战, 看到接口那块有点困惑了, 因为之前一直是学 C++的, 对于接口了解的不多, 通过 GPT 补补课. 首先介绍一下接口, 接口其实是针对一组方法(行为)的抽象, 与抽象类有所不同(虽然在 C++中都是通过虚基类实现的), 抽象类是类层次结构的抽象, 反映了类之间的关系. 下面的代码主要来自 go语言学习指南的 7.6节, 接口是类型安全的鸭子类型. Java 的接口(显式声明) Java 的接口通过 interface 来声明, 通过 implements 实现接口. 接口本质上也是一个类, 在这个类中给出了需要实现的方法的签名. 但是 Java 的接口使用的是显式声明, 也就是说每次实现接口都要指定具体实...

阅读更多

原地算法的小总结

写在前面 好久没写博客了, 这次来总结一下原地算法(操作), 去年秋招被问到了两次, 感觉还是要好好理解一下的. (变式的题目比如手写 memcpy 本质上也是原地算法) 所谓原地算法, 就是在不用额外的空间(例如新开数组)的条件下, 仅遍历一次(或者有限次, 最后的时间复杂度仅为$O(N)$​)的一种算法, 其本质就是双指针(不过有时候不一定需要使用两根指针). 经典的排序算法中例如堆排序就用了原地操作来完成元素的上溯和下溯, 插入排序和选择排序中也是类似的原地操作. 在 C++的 STL 中有的算法就用到了这个思路, 比较常见的就是 vector 容器的 remove 操作, 用过的小伙伴应该知道 remove 不会真的删除所有的元素, 而是将待删除的元素移动到最后,...

阅读更多

C++之旅笔记 1

写在前面 最近看到一本书, 叫作 C++之旅(A Tour of C++), 是去年 10 月份才最新出版的中文版, 而且是C++之父所著, 有提到 C++20 的最新特性, 遂拿来拜读一下. 这次主要写一下前面四章的内容, 分别是 C++基础, 数组, 模块化和错误处理. C++基础

阅读更多

Jekyll博客添加代码框一键复制按钮与复制提示

写在前面 之前一直想试试代码一键复制, 但是看了很多博客都是大改主题, 自己并没有系统学过前端的东西, 只能求助于 AGI 了. 结果发现 chatGPT3.5 免费版还是厉害, Gemini 虽然上了 Pro 还是差点意思 我的博客在这里: zorchp.github.io js 逻辑 assets/js/copy-to-clipboard.js document.addEventListener('DOMContentLoaded', function () { var codeBlocks = document.getElementsByTagName('code'); for (var i = 0; i < codeBlocks.leng...

阅读更多

Kali live持久化的最新方法(以联想小新潮为例)

写在前面 最近找到一块闲置的 u 盘, 想着重新折腾一下 Kali Linux 的 USB 持久化, 其实步骤不复杂, 但是 Windows 和联想小新潮 7000 的 bios 设置比较迷(可能是因为我之前装过双系统, 很多设置都要变) Windows10 22H2 Intel i5 kali Linux2023.4 amd64 aigo u330 64GB 镜像下载 这里一定要下载 live 镜像, 用 ndm 开多线程十几分钟就下载好了. 下面附最新的链接 https://cdimage.kali.org/kali-2023.4/kali-linux-2023.4-live-amd64.iso 烧录 这里推荐用 Rufus 工具, 开源而且能够...

阅读更多

Macos虚拟机lima 的进阶配置

写在前面 记录一下配置lima 虚拟机时候的一些心得. 网络 上回说到, 代理会被自动导入到 lima 的实例中, 怎么取消这个设置呢?即使下面的操作, 也没有效果… 默认配置 yaml lima/examples/default.yaml at master · lima-vm/lima; # Extra environment variables that will be loaded into the VM at start up. # These variables are consumed by internal init scripts, and also added # to /etc/environment. # If you set any of ...

阅读更多

Linux 发行版换源

写在前面 在 docker 使用 Linux 发行版, 想要安装包需要换国内镜像源, 而换源需要编辑镜像列表文件, 但是编辑的话需要vim或者 nano, 这俩编辑器又得换源之后才能安装….. 解决死锁的办法: 用 sed 啊! 下面的命令都运行在 sudo 权限下 archlinux sed -i '1s/^/Server = https:\/\/mirrors.tuna.tsinghua.edu.cn\/archlinux\/$repo\/os\/$arch\n/' /etc/pacman.d/mirrorlist ubuntu 对 Intel 架构 sed -i 's|http://archive.ubuntu.com/ubuntu|https:...

阅读更多

Total views.
您是Zorch的第 个小伙伴
Hits