为Android编译时,是否会删除iOS的Dart代码?
2020年01月18日
作者:佚名
我正在使用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)是否会摇摇欲坠.
以上是来客网为你收集整理的为Android编译时,是否会删除iOS的Dart代码? 全部内容,希望文章能够帮你解决为Android编译时,是否会删除iOS的Dart代码? 所遇到的程序开发问题。
如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。