- 博客(281)
- 收藏
- 关注
原创 Flutter基础(②④事件回调与交互处理)
执行 onSearch(value),也就是把 "苹果" 传给 onSearch 方法。类似,但更强调 "编辑结束且失去焦点"(比如按完成后,输入框会自动失去焦点)当用户完成输入并提交时触发(比如按键盘的 "完成"、"回车" 键):当输入框编辑完成(比如按 "完成" 键)且输入框失去焦点时触发。:当用户点击输入框时触发(还没开始输入,只是点击激活输入框):当用户点击输入框外部时触发(比如输入时点击屏幕其他地方)界面刷新,下方的文本会显示 "你输入的是:苹果"用户在输入框中输入文字(比如 "苹果")
2025-09-12 15:54:40
74
原创 Nodejs(④GraphQL)
找到 id 为 "2" 的用户:{ id: '2', name: '李四', age: 30 }函数执行:users.find(user => user.id === "2")它找到对应的 resolver:user: ({ id }) => {...}GraphQL 看到你要查询 user(id: "2")它调用这个函数,把 id: "2" 作为参数传进去。
2025-09-11 22:44:18
222
原创 Unity(①基础)
如果你想让角色有动画,可以使用 Assets/SourceFiles/StarterAssets/ThirdPersonController/Character/Animations 文件夹中的动画。添加 Animator 组件在 Inspector 窗口中,点击 Add Component 按钮,搜索 Animator ,然后点击添加。在 Animator 窗口中,右键点击 Idle 动画,选择 Make Transition,然后将箭头拖到 Walk_N 动画。
2025-09-10 20:49:29
230
原创 Nodejs(①AST)
比如把 JavaScript 代码转换成 Python 代码。先把 JS 解析成 AST,再根据 AST 的结构生成对应的 Python 语法(比如 JS 的 function 对应 Python 的 def),比直接翻译字符串靠谱得多。比如浏览器执行 JavaScript 时,会先把代码转成 AST,再进一步转换成机器能执行的指令。AST 相当于 “中间翻译官”,让编译器能一步步把高级语言变成机器能懂的代码。。
2025-09-10 12:30:33
315
原创 Python基础(①⑨Dask分布式集群)
在服务器上,放在 D:\project\random_numbers(假设你的脚本也放在 D:\project 下);在本地电脑上,也放在 D:\project\random_numbers(和服务器路径完全一致)。
2025-09-08 20:41:51
214
原创 Go基础(⑤Consul)
比如你公司有很多台服务器,上面跑着各种程序(像登录功能、支付功能),这些都叫 “服务”。:它能自动发现哪些服务在运行,哪些挂了,不用你手动记 IP 地址。:比如你想调用支付功能,Consul 会告诉你现在哪个服务器上的支付服务是好的,直接去连它。:时刻盯着服务状态,一旦某个服务挂了,马上通知大家,别再往那儿发请求了。:比如所有服务都需要一个数据库密码,你在 Consul 里改一次,所有服务就能自动拿到新密码,不用一台台服务器去改。
2025-09-06 22:42:43
950
原创 Python基础(①⑧Queue)
是专门为多线程设计的,自带锁机制,确保多个线程同时操作时不会出现数据混乱(线程安全)(双端队列)是 Python 内置的高效队列实现,支持从两端快速添加 / 删除元素。collections.deque:更轻量的队列实现,适合单线程场景。queue.Queue:用于多线程间的安全通信(线程安全)
2025-09-06 20:39:25
232
原创 Python基础(①⑦gRPC)
创建一个// 定义包名,避免命名冲突// 定义服务// 加法 RPC// 乘法 RPC// 加法请求消息// 加法响应消息// 乘法请求消息// 乘法响应消息生成 Python 代码使用工具根据.protoimport osimport sys# 生成代码f'--proto_path={os.path.dirname(__file__)}', # 指定proto文件目录。
2025-09-06 16:43:17
155
原创 Python基础(①⑥Protobuf)
Protobuf 理解成一种「高效的结构化数据格式」,专门用来在不同程序之间传递或存储数据。它和 JSON、XML 的作用类似,但更小巧、更快。假设你要在两个程序之间传递一个「用户信息」,包含姓名、年龄、邮箱。用 Protobuf 存储同样的信息,会变成二进制数据(类似 \x08\x12\x06\xe5\xb0\x8f\xe6\x98\x8e...),虽然人看不懂,但程序能高效处理,而且体积更小。.protoProtobuf 不直接写数据,而是先定义「数据结构规则」,这个规则就写在 .proto 文件里。
2025-09-06 16:17:56
594
原创 Go基础(③Cobra)
剩下的「解析用户输入」「判断执行哪个命令」「生成帮助信息(如 todo --help)」这些事,Cobra 全帮你做了。没有 Cobra 的话,你需要自己写代码判断用户输入的是。todo done 1 → 标记第 1 个待办为已完成。定义 add、list、done 这三个子命令。todo add "买牛奶" → 添加待办。todo list → 查看所有待办。,还要解析后面的参数,非常麻烦。给每个命令写好具体执行逻辑。初始化后,项目结构如下。
2025-09-06 14:30:38
202
原创 C++基础(⑦Crow)
WIN32_WINNT=0x0601 避免 Windows 版本宏警告。下载最新版本的 crow_all.h(通常在 Assets 里)ASIO_STANDALONE 让 Asio 不依赖 Boost。include 告诉编译器去哪找 asio.hpp。
2025-09-06 13:06:42
215
原创 C++基础(⑥资源释放)
资源释放 = 用完东西马上还,方便别人也方便自己。内存泄漏 = 租了储物箱不还,占着茅坑不拉屎。资源耗尽 = 把所有工具都占了,别人没得用。
2025-09-05 22:30:38
80
原创 Python基础(①⑤heapq模块)
堆是一种特殊的树状结构,最常见的是 “二叉堆”,它的核心特点是:最顶端的元素是 “最值”(默认小顶堆的顶端是最小值,大顶堆则是最大值)。往堆里添加 / 删除元素时,会自动调整结构,始终保持顶端是最值(这个过程叫 “堆化”)。可以想象成一堆叠起来的盘子:小顶堆:最小的盘子必须放在最上面,不管你怎么添新盘子或拿走最上面的,最后最上面的一定还是最小的。大顶堆:最大的盘子放在最上面,同理。用途:高效找最值、实现优先队列、Top K 问题等(比如用 heapq 模块快速找前几名最小 / 最大的元素)
2025-09-04 21:23:36
337
原创 Python基础(①④内存管理机制)
Python 的内存管理机制可以简单理解为 “自动帮你管钱”—— 你不用手动申请或释放内存,Python 会自动处理。
2025-09-04 20:46:50
324
原创 Docker(④Shell脚本)
Ubuntu 默认使用 Bash(Bourne Again SHell) 作为交互式 Shell 和脚本解释器,/bin/bash 是其可执行文件路径。/bin/bash 是固定格式,告诉系统用 bash 解释器执行脚本。),而 Linux 系统只识别 Unix 风格的换行符(保存退出:按 Ctrl+O 保存,Ctrl+X 退出。,原因是脚本中包含了 Windows 风格的换行符(,无需额外安装即可编写和执行 Shell 脚本。新建文件(文件名通常以。
2025-09-04 16:39:45
212
原创 Docker(③MobaXterm连接WSL Linux)
在 “Distribution” 中选择自己本地安装的 Ubuntu 版本,在 “run method” 中选择 “Localhost connection”。点击 MobaXterm 界面左上角的 “Session”。在弹出的窗口中,选择 “WSL” 作为连接类型。点击 “OK” 即可建立连接。
2025-09-04 16:10:52
229
原创 Docker(②创造nginx容器)
步骤 :确认 Docker Desktop 已启用 WSL2 集成打开 Docker Desktop,点击顶部菜单栏的 Settings(齿轮图标)。左侧导航栏选择 Resources → WSL Integration。确保 “Enable integration with my default WSL distro” 已勾选,且你的 Ubuntu 子系统(通常显示为 Ubuntu)右侧的开关已打开(蓝色为启用)。
2025-09-04 13:24:54
334
原创 Docker(①安装)
wsl --install 安装的是一个完整的 Linux 环境(比如 Ubuntu),你可以直接在里面运行 Linux 命令、安装 Linux 软件(如 Python、MySQL 等),相当于在 Windows 里内置了一个 Linux 系统。首次启动会让你设置用户名和密码(这是 Ubuntu 系统的本地账号,记住它),设置完成后就会进入 Ubuntu 的终端环境(提示符类似。按下 Windows 键 + R 组合键,打开运行对话框,输入 “msinfo32” 并回车,这将打开 “系统信息” 窗口。
2025-09-04 13:22:28
181
原创 Python基础(①②qrcode)
本文介绍了如何使用Python生成两种类型的二维码。首先需要安装qrcode和pillow库。第一部分演示了生成包含文本信息的二维码,通过QRCode类设置参数并保存为PNG图像。第二部分展示了如何生成包含vCard格式联系信息的二维码,使手机扫码后能直接添加到通讯录。文中提供了完整的代码示例,包括参数设置、数据组织和图像生成步骤,适用于不同场景的二维码生成需求。
2025-09-04 00:21:46
193
原创 Python基础(①①Ctypes)
ctypes是Python内置模块,用于调用C语言动态链接库(如.dll/.so文件),实现Python与C代码交互。它可直接调用现有C库,与Cython不同。示例展示了两种应用场景:1)调用Windows系统DLL实现消息框弹窗和获取屏幕分辨率;2)调用自定义C++编写的DLL,包括函数导出、编译生成DLL及Python调用过程。调用时需注意参数类型声明(如argtypes)和返回值处理(如字符串转换)。这种方法无需额外安装,适合快速集成现有C/C++功能。
2025-09-03 22:00:03
292
原创 Python基础(⑩Cython)
Cython 是 Python 的超集,允许在 Python 代码中嵌入 C 语言特性,通过将代码编译为 C 扩展来提升执行速度,特别适合计算密集型任务。安装 CythonCython 代码以 .pyx 为扩展名,主要特性:保留 Python 语法兼容性可添加类型声明提升性能可直接调用 C 函数# 带类型声明的循环(性能更好)cdef int i # 声明变量类型为C的int# 循环10万次# 纯Python风格循环(用于对比)result = 0。
2025-09-03 20:34:45
182
原创 Python基础(⑨Celery 分布式任务队列)
Celery 解决 “把任务扔出去,让别人(独立进程 / 机器)干” 的问题,适合重活、累活,还能多 “人” 一起干。普通异步解决 “同一进程内不等待” 的问题,适合快速的 IO 操作。在终端切换到tasks.py的文件夹,输入。
2025-09-03 19:43:18
185
原创 Python基础(⑧APScheduler任务调度框架)
触发器(Trigger):决定任务何时执行(日期、间隔、 cron 表达式)它的核心价值是帮你 “自动化” 那些需要定时执行的操作,无需人工干预。延迟执行操作:比如用户下单后,30 分钟内未支付就自动取消订单。执行器(Executor):负责执行任务(如线程池、进程池)定时同步数据:比如每 10 分钟从远程接口同步一次数据。特定日期执行:比如每年 12 月 31 日执行年度统计。定时清理文件:比如每小时删除临时文件夹中的过期文件。爬虫程序中:定时爬取目标网站的最新数据。任务(Job):要执行的函数或方法。
2025-09-03 19:01:12
220
原创 Python基础(⑦魔法方法)
Python魔法方法摘要:__init__用于初始化对象属性(创建实例时自动调用);__str__定义print()输出时的用户友好字符串;__repr__返回开发者友好的对象描述(可eval重现);__call__使实例可像函数一样调用。这些方法分别控制对象初始化、字符串表示和调用行为,是Python面向对象编程的重要特性。
2025-09-03 18:50:27
178
原创 Python基础(⑥属性装饰器)
是什么?这是 Python 中用于处理可变参数的语法,确保装饰器能适配任何参数的函数:*args:接收所有位置参数,打包成一个元组(tuple)**kwargs:接收所有关键字参数,打包成一个字典(dict)print("位置参数:", args) # 元组形式print("关键字参数:", kwargs) # 字典形式# 调用时传入各种参数wrapper(1, 2, name="张三", age=20)位置参数: (1, 2)
2025-09-03 17:53:19
149
原创 MongoDb(②pymongo)
返回的结果是一个,列表中包含了您连接的 MongoDB 服务器上的所有数据库的名称。例如,如果您在 MongoDB 中创建了mydata和users这两个数据库,那么。
2025-09-02 16:29:07
505
原创 MongoDb(①免安装)
去 MongoDB 官网(https://www.mongodb.com/try/download/community),选 ZIP 格式下载(别选 MSI)。:把下载的压缩包随便解压到一个地方,比如 D:\Mongodb。新建 d:\data\log(日志目录)新建 d:\data\db(数据目录)
2025-09-02 16:15:55
208
原创 C#基础(⑦user32.dll)
Windows 系统中,所有窗口交互都是通过 “消息” 机制实现的。例如:点击按钮 → 窗口收到 WM_LBUTTONDOWN(左键按下)消息键盘输入 → 窗口收到 WM_CHAR(字符输入)消息窗口关闭 → 窗口收到 WM_CLOSE 消息SendMessage 就是手动给窗口发送这些消息,模拟用户操作。
2025-09-02 15:03:58
1641
原创 C#基础(⑥动态链接库DLL)
它不只是单个方法,通常包含多个类、函数、资源(如图标、字符串)等,形成一个完整的功能模块。例如一个处理 Excel 的 DLL,可能包含「读取表格」「写入数据」「设置样式」等一系列相关功能。大部分商业 DLL 或系统 DLL:看不到源码(比如 Windows 自带的kernel32.dll、某些付费 SDK 的 DLL),它们以二进制形式发布,只能通过文档知道如何调用。
2025-09-02 14:47:57
725
原创 C#基础(⑤ProcessStartInfo类和Process类)
摘要:ProcessStartInfo是C#中用于配置外部程序启动参数的类(位于System.Diagnostics命名空间),常用于指定程序路径、启动参数、窗口样式等。配合Process类可实现对程序的启动与管理。基本用法包括:通过FileName属性设置程序路径,Arguments传递参数(如文件路径或网址),WindowStyle控制窗口状态。Process类提供WaitForExit()等待程序结束、Kill()强制关闭等功能,二者结合可实现自动化程序控制。例如:启动记事本并自动打开指定文件,或延时
2025-09-02 14:35:13
401
原创 C#基础(③CMD进程)
隐藏启动 CMD:通过 ProcessStartInfo 配置 CreateNoWindow = true 隐藏原始窗口,同时重定向输入输出。系列属性将 CMD 的输入输出 "接管" 过来,让程序可以直接与 CMD 交互,而无需显示其默认窗口。中,并且用颜色区分正常信息(默认色)和错误信息(红色),实现了 "自定义显示 CMD 内容" 的效果。自定义显示:将捕获的输出通过富文本框展示,并添加颜色区分等增强功能。(错误信息)事件传递给程序,代码通过绑定这两个事件捕获输出内容。捕获到的 CMD 输出通过。
2025-08-31 15:05:46
333
原创 C#基础(②音乐播发器MCI(Media Control Interface))
摘要:winmm.dll是Windows多媒体核心库,提供音频视频处理功能。通过mciSendString函数可实现多媒体控制,包括:1) open/close命令加载/关闭媒体文件;2) play/pause/stop控制播放;3) setaudio调整音量(0-1000);4) status获取播放状态/位置;5) seek定位播放进度。文中演示了C#音乐播放器的实现,包含播放控制、进度条、音量调节等界面元素,通过调用winmm.dll实现完整的音乐播放功能。
2025-08-31 14:25:47
207
原创 算法(④KMP)
KMP算法通过构建部分匹配表(LPS)实现高效字符串匹配。以"ABABABC"为例,LPS表计算过程如下:索引0-6的子串依次分析,最长公共前后缀长度分别为0,0,1,2,3,4,0。该表记录模式串各位置的最长重复前缀,使匹配失败时能跳过已匹配部分,避免从头比较。LPS表是KMP算法实现跳跃匹配的关键数据结构。
2025-08-30 22:06:26
410
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人