来自Kotlin Koan的问题(
https://github.com/Kotlin/kotlin-koans/blob/master/src/ii_collections/n16FlatMap.kt),我有这个Koan代码。我怎么读这个?它看起来像val
的变量,但它是一个()
和{}
的函数。
val Customer.orderedProducts: Set<Product> get() {
// Return all products this customer has ordered
todoCollectionTask()
}
答案 0 :(得分:3)
它是一个只读的计算扩展属性。调用get
方法来计算值。
因此可以使用:
yourCustomer.orderedProducts.first()
// ^ You're implicitly calling the get() method.
答案 1 :(得分:0)
似乎有机会将会员作为财产处理。在这个例子中,我可以从Customer.orderedProducts
属性中获取字符串。
data class Customer(val name: String, val orders: List<String>)
val Customer.orderedProducts: String get() {
return this.orders.joinToString()
}
fun main(args: Array<String>) {
val c = Customer("hello", arrayListOf("A", "B"))
println(c.orderedProducts)
println(c.orders)
}
这些是输出值。
A, B
[A, B]