這很容易在運行時用unwrap
崩潰:我應該在生產應用程序中避免打包嗎?
fn main() {
c().unwrap();
}
fn c() -> Option<i64> {
None
}
結果:
Compiling playground v0.0.1 (file:///playground)
Running `target/debug/playground`
thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', ../src/libcore/option.rs:325
note: Run with `RUST_BACKTRACE=1` for a backtrace.
error: Process didn't exit successfully: `target/debug/playground` (exit code: 101)
是unwrap
只專爲快速測試和證明的概念?
我不能肯定「我的程序不會崩潰這裏,這樣我就可以使用unwrap
」如果我真的想避免panic!
在運行時,我想避免panic!
就是我們要在生產中的應用。
換句話說,如果我使用unwrap
,可以說我的程序是可靠的嗎?或者我必須避免unwrap
,即使案件看起來很簡單?
我讀this答案:
,當你正確保您沒有錯誤這是最好的使用。
但我不認爲我可以「肯定地確定」。
我不認爲這是一個意見問題,而是一個關於Rust核心和編程的問題。
* Crash *是一個可怕的濫用詞現今國際海事組織;人們甚至在有例外的語言中將它用於未處理的異常。例如,對程序的恐慌遠沒有segfault那麼糟糕。恐慌是故意說「程序的狀態是*錯誤*,我現在就停下來,沒有兩種方式。 – Shepmaster
@Shepmaster好吧,謝謝你的這些精度! –