組裝線

組裝線

學習練習

簡介

數字

Rust 中的數字分成兩大類:整數(可為帶正負號或不帶正負號)以及浮點數。

整數

  • 整數:小數點後沒有任何位數的數字(即整數)。 整數型別可以只存放正數(不帶正負號),也可以同時存放正數和負數(帶正負號)。 例如 -6、0、1、25、976 和 500000。

浮點數

  • 浮點數:小數點後有零或多個位數的數字。 例如 -2.4、0.1、3.14、16.984025 和 1024.0。

數值型別的命名

數值型別的名稱由兩部分組成:

  • 一個字母,用來指出它是不帶正負號整數(u)、帶正負號整數(i),還是浮點數(f)。
  • 一個數字,用來指出該型別以位元為單位的大小。型別越大,最小值與最大值之間的範圍就越大。 對浮點數來說,這也代表小數點後可以容納更多位數。

以下是各種可能的組合:

  • 8 位元:u8、i8
  • 16 位元:u16、i16
  • 32 位元:u32、i32、f32
  • 64 位元:u64、i64、f64
  • 128 位元:u128、i128

請注意,浮點數只有 32 位元和 64 位元兩種版本。

在數值型別之間轉換

Rust 不會進行任何隱式型別轉換。 這表示如果你需要把某個數值型別轉成另一種,就必須明確地轉換。 從較大的型別轉換成較小的型別時(例如從 u64 轉成 u32),可能會遺失資料。 把浮點數轉成整數一定會遺失小數點後的所有內容,實際上等於無條件捨去。

說明

在這個練習中,你將撰寫程式碼來分析汽車工廠裝配線的生產情況。裝配線的速度範圍可以從0(關閉)到10(最高)。

在最低速度(1)時,每小時生產221輛車。產量會隨速度呈線性成長,所以速度設為4時,每小時應該生產4 * 221 = 884輛車。不過,速度越高,產生瑕疵車的機率也越高,這些車之後必須被丟棄。下表顯示速度如何影響成功率:

  • 1 到 4:成功率 100%。
  • 5 到 8:成功率 90%。
  • 9 和 10:成功率 77%。

你有兩個任務。

1. 計算每小時的生產率

實作一個方法來計算裝配線每小時的生產率,並將成功率納入考量:

assembly_line::production_rate_per_hour(6)
// Returns: 1193.4

請注意,回傳的值是f64。

2. 計算每分鐘生產的可用成品數量

實作一個方法來計算每分鐘能生產多少輛可正常運作的車:

assembly_line::working_items_per_minute(6)
// Returns: 19

請注意,回傳的值是u32。

透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Rust Exercism

準備好開始 組裝線 了嗎?

註冊 Exercism,透過 99 個練習 和真人引導來學習並精通 Rust,全部免費。