Rust 中的數字分成兩大類:整數(可為帶正負號或不帶正負號)以及浮點數。
數值型別的名稱由兩部分組成:
以下是各種可能的組合:
u8、i8
u16、i16
u32、i32、f32
u64、i64、f64
u128、i128
請注意,浮點數只有 32 位元和 64 位元兩種版本。
Rust 不會進行任何隱式型別轉換。
這表示如果你需要把某個數值型別轉成另一種,就必須明確地轉換。
從較大的型別轉換成較小的型別時(例如從 u64 轉成 u32),可能會遺失資料。
把浮點數轉成整數一定會遺失小數點後的所有內容,實際上等於無條件捨去。
在這個練習中,你將撰寫程式碼來分析汽車工廠裝配線的生產情況。裝配線的速度範圍可以從0(關閉)到10(最高)。
在最低速度(1)時,每小時生產221輛車。產量會隨速度呈線性成長,所以速度設為4時,每小時應該生產4 * 221 = 884輛車。不過,速度越高,產生瑕疵車的機率也越高,這些車之後必須被丟棄。下表顯示速度如何影響成功率:
1 到 4:成功率 100%。5 到 8:成功率 90%。9 和 10:成功率 77%。你有兩個任務。
實作一個方法來計算裝配線每小時的生產率,並將成功率納入考量:
assembly_line::production_rate_per_hour(6)
// Returns: 1193.4
請注意,回傳的值是f64。
實作一個方法來計算每分鐘能生產多少輛可正常運作的車:
assembly_line::working_items_per_minute(6)
// Returns: 19
請注意,回傳的值是u32。