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 的数据共享、并发数据共享、异步通信等等。
广告