Golang例子:对数组/片的元素进行求和

699 阅读2分钟

这篇文章包括使用以下方法对数组/片的元素进行求和

  • 使用范围形式对数组元素进行求和
  • 使用variadic函数
  • 由用户输入的元素之和

要理解下面的程序,你必须了解Go语言的以下特点。

示例程序 使用for循环范围的数组元素之和

package main  
  
import (  
 "fmt"  
)  
  
func sum(array []int) int {  
 result := 0  
 for _, v := range array {  
  result += v  
 }  
 return result  
}  
func main() {  
 numb := []int{1, 2, 3, 4, 5}  
 fmt.Print("Result :", sum(numb))  
}  

输出:

Result:15

在上面的程序中,使用速记赋值运算符声明并创建了分片的初始值。

在这个函数中,使用了for和from范围来迭代和计算每个元素,并将结果赋值。
这样就把结果返回给主函数。
最后,使用Print函数将结果打印到控制台。

示例程序 使用变量函数计算数组/片状元素的总和

package main  
  
import (  
 "fmt"  
)  
  
func main() {  
 numb := []int{1, 2, 3, 4, 5}  
 fmt.Print("Result :", addArray(numb...))  
}  
func addArray(numbs ...int) int {  
 result := 0  
 for _, numb := range numbs {  
  result += numb  
 }  
 return result  
}  

输出为

Result:15

在上面的程序中,

创建了带有初始值分配的片子

一个带有变量参数的函数被声明,这些被称为变量函数。

使用for循环的范围类型,Iterated,以及每个迭代元素的总和,将结果分配给结果变量,将结果返回给函数

最后使用print将结果打印到控制台

示例程序--用户输入的数组元素之和

package main  
  
import (  
 "fmt"  
)  
  
func main() {  
 size := 0  
 fmt.Print("Number of elements n=")  
 fmt.Scanln(&size)  
 fmt.Println("Enter of array elements")  
 elements := make([]int, size)  
 for i := 0; i < size; i++ {  
  fmt.Scanln(&elements[i])  
 }  
 fmt.Println("Entered Array of elements:", elements)  
 result := 0  
  
 for i := 0; i < size; i++ {  
  result += elements[i]  
  
 }  
 fmt.Println("Sum of elements of array:", result)  
}  

输出是

Number of elements n=5  
Enter of array elements  
1  
3  
6  
2  
8  
Entered Array of elements: [1 3 6 2 8]  
Sum of elements of array: 20

这里的元素数是由用户输入的,并存储在size变量中。

使用make函数创建一个片断或数组

从用户那里获取数组元素的数量并存储到数组的变量元素下。

最后,使用带有range关键字的for循环得到数组元素的总和,打印到控制台。