在Kotlin中如何简化按索引取数组元素的when语句?
Kotlin when语句简化方案
你写的when语句本质是判断page是否属于0-3的合法下标,再返回对应poster元素的imageURL属性,不需要逐一枚举分支,两种精简方案如下:
方案1:数组内置方法(最精简,Kotlin 惯用写法)
poster.getOrNull(page)?.imageURL ?: "image not provided"
逻辑完全和原写法等价:
getOrNull(page)会自动判断下标是否在数组合法范围内,合法返回对应元素,不合法返回null- 安全调用
?.imageURL只有元素不为空时才读取属性 - Elvis操作符
?:在前面结果为null时返回兜底字符串
如果你的poster数组长度大于4,希望仅当page为0-3时才取值,用下面的方案:
方案2:范围判断写法(可读性更高)
if (page in 0..3) poster[page].imageURL else "image not provided"
内容的提问来源于stack exchange,提问作者ABINASH KUMAR
相关产品推荐
相关产品推荐

