Go語言程式:查詢平均薪資


瞭解組織中員工的平均薪資對於分析、研究和獎勵制度至關重要。本文將使用迭代、reduce 函式以及 goroutine 和 channel 在 Go 語言中計算平均員工薪資。

演算法

  • CalculateAverage 函式接受一個 float64 值的切片 salaries 作為輸入,並返回一個 float64 值。

  • 將總和設定為 0,並計算 salary 切片的長度。使用 range 迴圈遍歷 salaries 切片中的每個薪資。

  • 將總和除以計數以獲得平均值並返回結果。

  • 在 main() 函式中,使用提供的 float64 值建立一個 employeeSalaries 切片。

  • 使用 employeeSalaries 作為輸入呼叫 calculateAverage 函式,並將結果賦值給 averageSalary。

  • 使用 fmt.Printf 列印保留兩位小數的平均薪資。

示例 1

在此示例中,我們使用迴圈迭代員工薪資,找到薪資總和,然後將其除以員工總數。我們將使用 calculateAverage() 函式來查詢平均薪資。

package main
import "fmt"
func calculateAverage(salaries []float64) float64 {
   sum := 0.0
   count := len(salaries)
   for _, salary := range salaries {
   sum += salary
   }
   return sum / float64(count)
}
func main() {
   employeeSalaries := []float64{25000.0, 30000.0, 20000.0, 35000.0, 
40000.0}
   averageSalary := calculateAverage(employeeSalaries)
   fmt.Printf("Average Salary: %.2f", averageSalary)
}

輸出

Average Salary: 30000.00

示例 2

此示例涉及使用 goroutine 和 channel 來計算平均薪資。由於其並行性可能提高效能,因此這種方法對於更大的資料集非常有用。在下面的程式碼中,我們將使用 goroutine 來查詢員工的平均薪資。

package main
import (
   "fmt"
   "sync"
)
func calculateAverage(salaries []float64) float64 {
   sum := 0.0
   count := len(salaries)
   var wg sync.WaitGroup
   results := make(chan float64)
   for _, salary := range salaries {
      wg.Add(1)
      go func(salary float64) {
         defer wg.Done()
         results <- salary
      }(salary)
   }
   go func() {
      wg.Wait()
      close(results)
   }()
   for result := range results {
   sum += result
   }
   return sum / float64(count)
}
func main() {
   employeeSalaries := []float64{25000.0, 35000.0, 20000.0, 34000.0, 
40000.0}
   averageSalary := calculateAverage(employeeSalaries)
   fmt.Printf("Average Salary: %.2f", averageSalary)
}

輸出

Average Salary: 30800.00 

結論

在本文中,我們學習瞭如何在 Go 語言中計算員工的平均薪資。我們探討了三種不同的技術來查詢平均員工薪資,包括迴圈迭代和使用 goroutine。這些程式的應用包括 goroutine 的資料共享、併發資料共享、非同步通訊等等。

更新於:2023年7月13日

98 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.