You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dart中Text与new Text的区别是什么?适用于Container等所有组件

在Dart/Flutter中,直接使用组件名和new组件名的区别

嘿,这个问题问得很到位——其实在现代Dart(尤其是Flutter开发用的Dart版本)里,直接写Text("Hello")和new Text("Hello")完全没有功能上的差异,本质是同一个操作,只是语法写法不同而已。这个规则同样适用于Container、Row、Column等所有Flutter组件,下面给你掰扯清楚:

  • Dart 2.0的语法简化:Dart在2.0版本后引入了可选的new/const关键字,目的是让代码更简洁。对于普通构造函数的调用,new关键字可以直接省略,编译器会自动帮你补全这个关键字。所以不管你写不写new,最终都是在调用组件的构造函数创建实例。
  • Flutter组件的一致性:所有Flutter的UI组件(比如Container、Scaffold)的构造函数都是普通构造函数(除非标注了const),所以省略new的写法完全兼容,生成的组件实例没有任何区别。官方的示例代码和文档也早就采用了省略new的写法,算是现在的标准规范。
  • 例外情况:const构造函数:这里顺带提一下,如果你用的是const Text("Hello"),那和Text("Hello")是有区别的——const会创建编译时常量,相同参数的const组件会复用同一个实例,而普通的Text每次调用都会生成新实例。但这和new无关,是const的特性。

说白了,现在写Flutter代码的时候,完全可以把new当成“过期语法”,直接写组件名加括号就行,既简洁又符合官方规范。

内容的提问来源于stack exchange,提问作者Vincent

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:55:50