Golang 寻找平均薪水
了解组织中雇员的平均薪水对于分析、研究和奖励非常重要。在本文中,我们将使用迭代、reduce函数以及goroutines和channels来寻找go语言中的平均雇员薪水。
步骤
- CalculateAverage是一个接受float64值的薪水切片作为输入并返回一个float64值的函数。
-
将总数设为0,并计算薪水切片的长度。使用range循环遍历salaries切片中的每个薪水。
-
将总数除以计数以获取平均值并返回结果。
-
在main()函数中,使用提供的float64值创建一个employeeSalaries切片。
-
使用calculateAverage函数并将结果赋给averageSalary。
-
使用fmt,将平均收入打印到小数点后两位。
示例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
这个示例涉及使用 goroutines 和 channels 来计算平均工资。由于它的并行性潜在地提高了性能,这种方法对于较大的数据集非常有帮助。在下面的代码中,我们将使用 goroutines 来找到员工的平均工资。
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中的数据共享、并发数据共享、异步通信等。