![](/img/trans.png)
[英]How to return member values in a array of objects using lambda expressions
[英]Member variables cannot be correctly converted to lambda expressions
如上
data class Person(val name: String, val age: Int) : Comparable<Person> {
override fun compareTo(other: Person): Int {
return compareValuesBy(this, other, Person::name, Person::age)
}
}
上面的代碼運行正確,當我轉換為以下代碼時,無法獲得正確的結果。
data class Person(val name: String, val age: Int) : Comparable<Person> {
override fun compareTo(other: Person): Int {
return compareValuesBy(this, other, { name }, { age })
}
}
您應該在大括號內使用它 ,然后訪問名稱和年齡。 如果您不這樣做,則編譯器接受您的第一個參數(在this之后, other ),在這種情況下,其名稱為Person Object not String
該代碼將為您工作:
data class Person(val name: String, val age: Int) : Comparable<Person> {
override fun compareTo(other: Person): Int {
return compareValuesBy(this,other,{it.name},{it.age})
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.