我有一个简单的功能检查,如下所示:
fun parseValidBluetoothBrickedId(controllerId: String?): Boolean{
if(controllerId != null){
if(controllerId.startsWith(BLUETOOTH_NAME_PREFIX) && controllerId.length > BLUETOOTH_NAME_PREFIX.length)
return true
}
return false
}
我想将其转换为更简单的样式:
fun parseValidBluetoothBrickedId(controllerId: String?) =
controllerId?.length > BLUETOOTH_NAME_PREFIX.length
&& controllerId?.startsWith(BLUETOOTH_NAME_PREFIX)
但是IDE(Android Studio 3.0 Beta7)给了我一个错误,强调了大于('>')运算符:
操作员调用对应于点限定调用 'controllerId?.length.compareTo(BLUETOOTH_NAME_PREFIX.length) ,此处不允许
它还下划线作为错误行 controllerId?.startsWith(BLUETOOTH_NAME_PREFIX) 并说:
类型不匹配。必需:布尔值,找到布尔值?
真的是什么问题?这只是一个简单的方法,适用于第一个块 if-else 样式。