通过和 C++ 进行对比,谈谈 Rust 如何通过编译器和程序语义避免程序员犯错。