Rust 學習日記#反思主流Rust教程
大學好,今天分享一些自己在學習Rust過程中的個人見解,我也是剛開始認真學習Rust。,如果有什麼錯誤,請各位大佬指教。
我認為,目前的Safe Rust教派,已經阻礙了Rust的發展,因為人們要由內存的申請與釋放內存中學習,智能指針,RAII,這些Concept都是建立在指針的概念之上的,但是現在Safe Rust教派卻阻礙人們使用Unsafe Pointer,並引以為傲地認為,這對Rust的發展具有良好意義。事實上,卻好相反,因為這使Rust無法成為計算機系的第一語言,因為Safe Rust教派使Rust不能教授Unsafe Pointer,從而無法教授指針和內存的知識。我認為,尽管Unsafe Pointer在實際項目中較為少用,但是掌握指針語法和用它寫一些小項目,都是有必要的教學。Rust的引用與C++完全不同,Rust的引用是一種弱化指針,它是可以被解引用的,這與CPP以及C#的引用完全不同,這幾乎就是一種受限制了功能的指針,因此學習真實指針完全有必要,對於想要真正理解Rust引用的學習者而已。我認為Rust的學習路線應該是,變量,RAII(知道出了作用域就會釋放),函數(fn),結構體(struct),方法(impl),枚舉(Enum,Option,Result,if let,while let ,match),trait,clone,copy,Unsafe Pointer(掌握申請與釋放內存,以及Drop Trait),然後才是學習Rust的智能指針(Box,Rc),學習Rust的引用(弱化指針),繼續學習智能指針(UnsafeCell,Cell,RefCell),最後才是學習生命周期,學習如何用,何時用。然後學習Rust的并發編程,學習Future,Thread,Channel,Tokio,Async,Await,學習另一種智能指針Mutex等等。
本作品采用《CC 协议》,转载必须注明作者和本文链接
有意思。我觉得这是不可避免的,复杂的语言在发展过程中肯定会出现分歧和派别。我不了解关于“阻碍 Unsafe 指针的使用”是怎么个情况,我以前听到的是“建议尽可能不使用原始指针(raw pointer)”。
我个人觉得这不是什么问题,使用 Rust 的人不会在意这种建议,Rust 本来的定位就是系统编程语言。如果是出于对学习者友好的考量,我的观点是,Rust 太复杂,不太适合作为学习计算机基础的教学语言。