代码1来自示例项目,我修改了一些代码并将其更改为代码2,代码2也可以正确运行。
Kotlin的Code 1和Code 2有什么不同?谢谢!
代码1
imgName: function(fruit){
if (fruit === 'apple') {
return 'https://bestapples.com/wp-content/uploads/2015/10/apple-varieties.jpg'
} else {
var imgPath = 'assets/images/' + fruit + '.jpg';
return imgPath;
}
}
代码2
data class ForecastList(val id: Long, val city: String, val country: String, val dailyForecast: List<Forecast>) {
val size: Int
get() = dailyForecast.size
operator fun get(position: Int) = dailyForecast[position]
}
答案 0 :(得分:3)
第一个将在构造时评估dailyForecast.size
,将值存储在支持字段中,并创建一个返回此支持字段值的访问者。
第二个不会创建支持字段,而是会创建一个访问者,每次获得dailyForecast.size
时都会返回评估表达式size
。