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