Dart的const关键字是否会为Flutter未渲染屏幕分配内存?
Dart中
const的内存分配机制 const的核心特性就是编译时确定值并创建实例,这些实例会被存入Dart的全局常量池,整个应用运行期间复用同一个对象。- 你的理解是对的:所有
const值(包括未渲染屏幕里定义的)的内存都会在应用启动阶段就完成分配,不会等到对应的屏幕被渲染时才初始化。 - 对比
final:final是运行时确定值,可能在第一次使用时才分配内存;但const是编译期就固化,启动时直接加载到内存,不管后续是否被实际使用。 - 举个例子:假设你在一个从未被打开过的页面里定义了
const Text("Hello"),这个Text实例其实在App启动时就已经存在内存中了,只是没被渲染到界面而已。
内容的提问来源于stack exchange,提问作者shingo.nakanishi
相关产品推荐
相关产品推荐

