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 的資料共享、併發資料共享、非同步通訊等等。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP