nebkad

nebkad

请阻止我发帖
V2EX 第 557390 号会员,加入于 2021-09-30 23:34:06 +08:00
今日活跃度排名 21787
根据 nebkad 的设置,主题列表只有在你登录之后才可查看
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
nebkad 最近回复了
16 天前
回复了 jybox 创建的主题 git 因为有两台电脑 我需要一个跨设备的 git stash
非常合理的软件需求分析和功能设计,写好了喊我试试
17 天前
回复了 Visitor233 创建的主题 程序员 求问: WPF 未来还能坚挺几个十年?
WPF 的技术原理,就是一种对软件实际功能和人机界面的去耦合,
只要人机界面还是平面的,可能 WPF 都不会过时
但如果 AR 后者 MR 发展得够快,以头戴设备为主要人机界面的话,可能 WPF 就不能适应
缘木求鱼是很难的,不使用 1.78 后才有的特性,然后用旧版本编译器编译还是可以的
24 天前
回复了 istomyang 创建的主题 Rust 请教关于 Rust 异步编程软件设计思路
@istomyang
需要注意到 Rust 比起 OOP 或者 Golang 的一个重要特点,就是可以很自由地组合 trait 。
例如,OOP 的继承完全可以用 AsRef AsMut 来替代,动态分派可以用 Box<dyn Trait>
所以,抛弃“自顶向下,逐步求精”的实现方法,而是“先解决实际问题,再提取共同特点”,具体来说就是先写 struct 写 enum ,有复用需求了,再给 struct 或者 enum 加 trait
27 天前
回复了 gransh 创建的主题 职场话题 年纪大又技术一般的人未来能做什么?
@MAVETRICK 如果你真的想不开,拜托你刀两个人渣再离开
34 天前
回复了 istomyang 创建的主题 Rust 请教关于 Rust 异步编程软件设计思路
@istomyang #7
Future 是一个 trait
Async_Trait 也是一个 trait ,
Async_Trait 是 Send 的跟其定义的 fn fun 的返回值(某个实现 Future 的) 类型是不是 Send 的,两者没有必然关系。

如果你直接写成一个 struct 或者 enum 恐怕就没那么容易遇到 rust 目前的类型系统表达缺陷。
直接从 trait 开始写但又没想得那么细,肯定会写得不顺手啊
35 天前
回复了 istomyang 创建的主题 Rust 请教关于 Rust 异步编程软件设计思路
不是很明确你的需求具体是什么,按照我自己的理解参与一下讨论:

Rust 异步编程,要么就**不要**隐藏 async/await 的语言机制,这种适合作为其他 Rust 编写的代码提供 crate 或者 lib 的方式来使用;

如果是作为跨语言的基础类库,提供给譬如 C/C++ C# 等等的情形,我个人的实践经验是,参考操作系统 API 设计(即 epoll kqueue iocp 等等)提供 C 接口来描述异步的数据交换,主要思路是把不同语言的异步机制用 C API 隔离开来,由两边的语言各自封装异步交互机制;
63 天前
回复了 bli22ard 创建的主题 Rust rust 的 File 是有魔法吗?
@bli22ard #7

std 的源码是公开的,你甚至都不用下载直接在我发给你的链接开始点两下就看到了。
就算你改成了支持 &mut 语义,如果 OS 不支持独占,难道你还能阻止别的调用者用同样的路径再开一个 File 吗?
63 天前
回复了 bli22ard 创建的主题 Rust rust 的 File 是有魔法吗?
@bli22ard 如果你对 std 的设计不是很满意,你的 OS 平台支持你在 Rust 中使用 &mut 语义的话,你自己重新包装一个 File 也不是很难啊
64 天前
回复了 bli22ard 创建的主题 Rust rust 的 File 是有魔法吗?
@bli22ard #2

https://doc.rust-lang.org/stable/std/fs/struct.File.html

Note that, although read and write methods require a &mut File, because of the interfaces for Read and Write, the holder of a &File can still modify the file, either through methods that take &File or by retrieving the underlying OS object and modifying the file that way. Additionally, many operating systems allow concurrent modification of files by different processes. Avoid assuming that holding a &File means that the file will not change.
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4290 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 12ms · UTC 10:11 · PVG 18:11 · LAX 02:11 · JFK 05:11
Developed with CodeLauncher
♥ Do have faith in what you're doing.