Kotlin 数组 - sumOf() 函数



Kotlin 数组的 sumOf() 函数用于返回对数组中每个元素应用选择器函数后生成的数组元素的总和。

此函数可以用于整数、浮点数和其他数值类型的数组。它不适用于字符串或字符数据类型。

在最新版本的 Kotlin 中,sumBy() 函数已被弃用。建议使用 sumOf() 函数替换 sumBy() 函数。

语法

以下是 Kotlin 数组 sumOf() 函数的语法:

fun <T> Array<out T>.sumOf(selector: (T) -> Int): Int

参数

此函数接受 selector 作为参数。

返回值

此函数返回由选择器函数指定的所有值的总和。

示例 1

以下是一个演示 sumOf() 函数用法的基本示例:

fun main(args: Array<String>){
   var arr = arrayOf(3, 4, 5, 6)
   print("Array elements: ")
   println(arr.joinToString())

   // Sum of all element of an array
   val total = arr.sumOf({it})
   println("Sum of array's element: "+ total)
}

输出

以上代码生成以下输出:

Array elements: 3, 4, 5, 6
Sum of array's element: 18

示例 2

让我们来看另一个示例。在这里,我们使用 sumOf 函数计算元素及其双倍值的总和:

fun main(args: Array<String>){
   var arr = arrayOf(1, 2, 3, 4, 5)
   println("Array elements: ")
   arr.forEach { println(it) }

   //Sum of all element with their double value
   println("Sum of array's element ${arr.sumOf{it*2}}")
}

输出

以下是输出:

Array elements: 
1
2
3
4
5
Sum of array's element 30

示例 3

让我们看下面的例子,我们有一个 Product 对象数组,我们想使用 sumOf() 函数计算所有产品的总价格:

data class Product(val name: String, val price: Double, val quantity: Int)

fun main(args: Array<String>) {
   val products = arrayOf(
      Product("Laptop", 999.99, 1),
      Product("Mouse", 19.99, 2),
      Product("Keyboard", 49.99, 1),
      Product("Monitor", 199.99, 2)
   )
   // Calculate the total price of all products
   val totalPrice = products.sumOf { it.price * it.quantity }

   // Display the result
   println("The total price of all products is: $$totalPrice")
}

输出

以上代码产生以下输出:

The total price of all products is: $1489.94
kotlin_arrays.htm
广告