我對 Kotlin 非常陌生,并且對如何修改 Kotlin 中的重復欄位有疑問。
假設我有一條訊息,例如-
message A {
optional B b = 0;
}
message B {
repeated C c = 0;
}
message C {
optional string value = 0;
}
現在我從端點收到一個請求(一條訊息),如果沒有設定,我想更新每個值欄位。
fun updateValue(a: A): A{
a.b.c.forEach {
if (it.value.isNullOrEmpty()) {
it.apply {
value = "balabala"
}
}
}
}
但我總是收到錯誤“無法重新分配 val”。我怎樣才能使這項作業?
uj5u.com熱心網友回復:
你不能。Kotlin 中的協議緩沖區(就像在 Java 中一樣)不能就地修改;您只能創建原始物件的新修改版本。
(另請注意,您不必使用 isNullOrEmpty;原始欄位不能為空。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/523749.html
標籤:科特林协议缓冲区
