我正在使用flutter为iOS和Android平台编写应用程序.有些功能不一样.
例如:
if (Platform.isIOS) {
int onlyForiOS = 10;
onlyForiOS++;
print("$onlyForiOS");
}
else if (Platform.isAndroid){
int onlyForAndroid = 20;
onlyForAndroid++;
print("$onlyForAndroid");
}
当我为Android平台构建时,iOS的代码会被编译成二进制文件吗?还是只是为了优化而将其删除?
出于安全原因,我不希望iOS的任何代码出现在Android二进制文件中.
解决方法:
这取决于您要评估的表达式.
Dart摇树基于常量.因此,以下内容将摇摇欲坠:
const foo = false;
if (foo) {
// will be removed on release builds
}
但是此示例不会:
final foo = false;
if (foo) {
// foo is not a const, therefore this if is not tree-shaked
}
现在,如果我们查看Platform.isAndroid的实现,我们可以看到它不是一个常量,而是一个吸气剂.
因此,我们可以推断出(Platform.isAndroid)是否会摇摇欲坠.
原文地址:https://codeday.me/bug/20191210/2104517.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。