我在Java中有此代码
return mFingerprintManager.hasEnrolledFingerprints() &&
createKey(DEFAULT_KEY_NAME, true) &&
initCipher(mCipher, DEFAULT_KEY_NAME);
我已将其转换为Kotlin,如下所示
return mFingerprintManager.hasEnrolledFingerprints() &&
createKey(DEFAULT_KEY_NAME, true) &&
if (mCipher != null) {
mCipher?.apply { initCipher(this, DEFAULT_KEY_NAME) }
return true
} else {
return false
}
有没有更好的方式编写Kotlin代码,因此更简洁?变量mCipher定义为
private var mCipher: Cipher? = null
在课堂上。
最佳答案
如果接收器不为null,则在可为空的接收器上的?.
返回函数的结果,否则为null。
将此与.apply
结合在一起,我们可以编写:
[..] && mCipher?.apply { initCipher(this, DEFAULT_KEY_NAME) } != null