kotlin_Listのアイテムの_data_classのインスタンスの数値型フィールドの合計値

 

次のような android の kotlinのコードがあります。

data class Item(val code_value: String, val quantity: Int, val unit_price : Int ) 


// 状態を保持するリスト

val items = remember {

mutableStateListOf(

//Item("Name", 25, true),

// Item("Age", 30, false)

Item(  "だいこん1", 0, 100 ),

Item(  "にんじん1",  0, 200 )

Item(  "だいこん2", 0,300 ),

Item(  "にんじん2",  0, 400 )

Item(  "だいこん3", 0, 500 ),

Item(  "にんじん3",  0, 200 )

)

}


itemsのリストが要素数が0かどうかチェックしてから、

このときに itemsのリストに要素が入っていれば、

そのそれぞれのItemのフィールド


quantity と unit_priceをアイテムごとに掛け算をして、


それを足し合わせた合計の値を計算するような

制御文を記述していただきたいのですが・・・


        ↓


以下は、`items` リストの要素数を確認し、


要素が存在する場合には各 `Item` の

 `quantity` と `unit_price` を掛け算し、

 

 その結果を合計するコードの例です。



```kotlin


import androidx.compose.runtime.mutableStateListOf

import androidx.compose.runtime.remember



data class Item(val code_value: String, val quantity: Int, val unit_price: Int)



fun calculateTotal(items: List<Item>): Int {


    // items リストが空でないかチェック

    if (items.isNotEmpty()) {

        // 各アイテムの quantity と unit_price を掛け算し、その合計を計算

        return items.sumOf { it.quantity * it.unit_price }

    }

    return 0 // items リストが空の場合は 0 を返す

}



// メイン関数内でテスト

fun main() {


    val items = mutableStateListOf(

        Item("だいこん1", 2, 100),

        Item("にんじん1", 3, 200),

        Item("だいこん2", 1, 300),

        Item("にんじん2", 4, 400),

        Item("だいこん3", 0, 500),

        Item("にんじん3", 5, 200)

    )


    val total = calculateTotal(items)

    println("合計: $total")

}

```


### コードのポイント


1. **`sumOf` の使用**  


   Kotlin の `sumOf` 関数を使用して、

   リストの各要素に対する計算結果の合計を簡潔に求めています。



2. **空リストのチェック**  


   `items.isNotEmpty()` を用いてリストが空かどうかを確認し、

   空の場合は合計値として `0` を返しています。



3. **掛け算のロジック**  


   各 `Item` の `quantity` と `unit_price` を掛け算して

   合計値を計算します。



### 実行結果(例)


上記のリストを使った場合の出力は次のようになります:


```

合計: 3800


```


コメント