kotlin过渡优化

1
2
3
4
5
6
binding.noSignalPowerControl.visibility = if (context.resources.getBoolean(R.bool.support_no_signal_power_control)) {  
View.VISIBLE
} else {
View.GONE
return
}

这段代码,我本意是对于隐藏的View直接return,不进行下一步操作
但是实际反编译的代码,在条件不成立的情况下没有进行noSignalPowerControl.visibility=GONE操作,而是直接忽略了。
下面是反编译后的代码:

1
2
3
4
5
6
7
SpinnerLayout var10000 = ((DisplayViewBinding)this.getBinding()).noSignalPowerControl;  
Intrinsics.checkNotNullExpressionValue(var10000, "binding.noSignalPowerControl");
Context var10001 = this.getContext();
Intrinsics.checkNotNullExpressionValue(var10001, "context");
if (var10001.getResources().getBoolean(400038)) {
var10000.setVisibility(0);
}

修改后的代码:

1
2
3
4
5
6
if (context.resources.getBoolean(R.bool.support_no_signal_power_control)) {  
binding.noSignalPowerControl.visibility = View.VISIBLE
} else {
binding.noSignalPowerControl.visibility = View.GONE
return
}

本意是想节省一些代码,没想到居然踩中Kotlin的坑