Black Hat Rust的作者,在两年前作者就已经开始尝试用Rust去进行web开发,这篇blog谈的是他开发的一些感受,一些经验,同时提到了他开发中用到了哪些crate。seed的主要维护者,所以,理所当然的在前端部分选择了seed。RwLock<T> 对想要在多线程下正确使用,T的约束是?The type parameter T represents the data that this lock protects. It is required that T satisfies Send to be shared across threads and Sync to allow concurrent access through readers.
trait A{ fn foo(&self) -> Self; }
Box<Vec<dyn A>>;
不可以,参考object safe 三条规则。
Clone与 Copy 的区别是什么?Copy是marker trait,告诉编译器需要move的时候copy。Clone表示拷贝语义,有函数体。不正确的实现Clone可能会导致Copy出BUG。
deref 的被调用过程?Deref是一个trait,由于rust在调用的时候会自动加入正确数量的 * 表示解引用。则,即使你不加入*也能调用到Deref。
调用处宏调用、声明时用宏声明包裹、proc_macro包裹函数、邪道一点用compiler plugin、llvm插桩等形式进行。(Go:我用snippet也行)
Box<dyn (Fn() + Send +'static)> 是什么意思?一个可以被Send到其他线程里的没有参数和返回值的callable对象,即 Closure,同时是 ownershiped,带有static的生命周期,也就说明没有对上下文的引用。
@wayslog老师的题目和解析,同时感谢@huangjj27的整理。Rust众[https://t.me/joinchat/BScxlkthNrn4Vo0L1dG__w ],不知道是不是大家想要加的群。原文作者:Rust语言中文社区;如有侵权,请联系管理员删除。