重大变更和弃用
- 3.6.0
- 3.5.0
- 3.4.0
- 3.3.0
- 3.2.0
- 3.1.0
- 3.0.0
- 2.19.0
- 2.18.0
- 2.17.0
- 2.16.0
- 2.15.0
- 2.14.0
- 2.13.0
- 2.12.0
- 2.10.0
- 2.9.0
- 2.8.1
- 2.7.1
- 2.7.0
- 2.6.0
- 2.5.0
- 2.4.0
- 2.2.0
- 2.1.1
- 2.1.0
- 2.0.0
此页面列出了 Dart 中所有语言和库重大变更和弃用,按版本和领域进行组织,以帮助 Dart 用户理解和管理其影响。完整的版本说明可以在 Dart SDK 变更日志 中找到。 重大变更策略 文档描述了 Dart 中重大变更和弃用的策略和流程。
此页面包括以下类型的重大变更:
未版本化:Dart SDK 不维护向后兼容性,只要你 升级 SDK 版本,代码就可能出现问题,如果代码依赖于之前的行为。
这些是大多数变更,在本列表中未做特殊标记。
语言版本化:Dart SDK 保持对现有代码的向后兼容性,行为变更只会在你升级代码的 语言版本 时生效(可能会破坏依赖于之前行为的代码)。
这些标记为: 语言版本化
弃用:Dart SDK 保持对弃用代码的兼容性,并发出警告。弃用将在后续版本中完全删除,破坏任何依赖于之前行为的代码。
这些标记为: 已弃用 / 已删除
实验性:是版本的一部分,但尚未在 SDK 中视为稳定,可能会从一个版本到另一个版本发生变化。实验性变更并不总是具有相应的重大变更问题,但在 SDK 变更日志 中可能会有更多详细信息。
这些标记为: 实验性
如果你对任何重大变更有任何疑问或疑虑,请在相关条目中链接的重大变更问题中发表评论。若要接收有关未来重大变更的通知,请加入 Dart 公告 组。
3.6.0
#暂定
以下变更预计将包含在 3.6 稳定版本中,但最终列表可能会在发布之前发生变化。为了减少这些变更带来的潜在影响,请考虑在 3.6 版本发布之前做好准备。
语言
#- Dart 用于对 throw 表达式操作数进行类型推断的上下文已从“未知类型”更改为
Object
。这使得类型系统更加自洽,因为它反映了无法抛出null
的事实。此变更预计不会在实践中产生任何影响。
3.5.0
#语言
#- 编译器用于对
await
表达式操作数进行类型推断的上下文已更改为匹配分析器的行为。 - 编译器用于对“if-null”表达式(
e1 ?? e2
)的右侧进行类型推断的上下文已更改为匹配分析器的行为。 可以通过提供显式类型来恢复旧的行为。
库
#dart:core
#DateTime
现在在 Web 平台上存储微秒,更接近本地平台上的行为。
dart:io
#dart:js_interop
#importModule
现在接受JSAny
而不是String
,以支持其他 JS 值,例如TrustedScriptURL
对象。isTruthy
和not
现在返回JSBoolean
而不是bool
,以与其他 JS 运算符方法保持一致。ExternalDartReference
不再实现Object
。相反,它现在接受一个类型参数 (T
),其边界为Object?
,以捕获外部化的 Dart 对象的类型。
dart:typed_data
#- 已删除 已删除类型化数据的不可修改视图类。不要使用这些类的构造函数,而是使用类型化数据列表上的新
asUnmodifiableView
方法。
运行时
#- 已删除 Dart VM 不再支持不健全的空安全。
--no-sound-null-safety
CLI 选项已删除。Dart_NewListOf
和Dart_IsLegacyType
函数已从 C API 中删除。
- 已删除
Dart_DefaultCanonicalizeUrl
函数已从 C API 中删除。
3.4.0
#语言
#- 用于强制类型转换模式的模式上下文类型模式现在是
_
(未知类型),而不是Object?
. - Dart 编译器用于对映射和集合字面量中空感知扩展运算符(
...?
)的操作数进行类型推断的类型模式已改为可空,以匹配列表字面量中当前发生的情况。
库
#dart:cli
#- 实验性 已删除
waitFor
函数 已删除。
dart:html
、dart:indexed:db
、dart:svg
、dart:web_audo
、dart:web_gl
#- 已弃用 这些库现在标记为遗留库,未来将获得较少的支持。新项目应优先使用
package:web
和dart:js_interop
。若要了解更多信息,请查看 迁移到 package:web。
dart:js
#- 已弃用 此库现在标记为遗留库,未来将获得较少的支持。应将用法迁移到
dart:js_interop
和dart:js_interop_unsafe
。若要了解更多信息,请查看/go/next-gen-js-interop
。
dart:js_util
#- 已弃用 此库现在标记为遗留库,未来将获得较少的支持。应将用法迁移到
dart:js_interop
和dart:js_interop_unsafe
。若要了解更多信息,请查看/go/next-gen-js-interop
。
dart:io
#Stdout
具有一个新的字段lineTerminator
,允许开发人员控制stdout
和stderr
使用的行结束符。 实现Stdout
的类必须定义lineTerminator
字段。stdout
和stderr
的默认语义没有改变。- 已弃用
FileSystemDeleteEvent.isDirectory
属性。它始终返回false
。
dart:typed_data
#- 已弃用 类型化数据的不可修改视图类已弃用。不要使用这些类的构造函数,而是使用类型化数据列表上的新
asUnmodifiableView
方法。
工具
#生产 JavaScript 编译器 (dart2js)
#- 实验性 已弃用 现在应为
--dump-info
CLI 选项指定binary
或json
格式。json
格式已弃用,可能会在未来的 Dart 版本中删除。
Wasm 编译器 (dart2wasm)
#- 实验性
dart compile wasm
CLI 参数已更新、删除或替换。若要了解更多信息,请运行dart compile wasm --verbose --help
。
运行时
#- 已删除 Dart VM 不再支持外部字符串。因此,
Dart_IsExternalString
、Dart_NewExternalLatin1String
和Dart_NewExternalUTF16String
函数已从 Dart C API 中删除。
3.3.0
#SDK
#实验性 已删除 以下实验现已退出,因为它们已在 Dart 3 中发布,并且在语言版本 3.0 或更高版本中不再需要。应从分析选项、CLI 命令和 IDE 配置中删除对它们的配置。
patterns
records
class-modifers
sealed-class
语言
#库
#dart:cli
#- 实验性 已弃用
waitFor
函数 将在下一个版本中继续被弃用,并将在 Dart 3.4 中被移除。
dart:ffi
#- 已弃用
Pointer
类型上的elementAt
指针运算方法已弃用。迁移到-
和+
运算符。 - 实验性 已移除 之前已弃用的
@FfiNative
注解已被移除。使用情况应更新为使用@Native
注解。
dart:html
#- 建议使用
package:http
而不是直接使用HttpRequest
。
dart:io
#- 建议使用
package:http
而不是直接使用HttpClient
。
dart:js_interop
#- 实验性 像
JSAny
这样的 JS 类型具有 新的编译器特定表示类型。 - 实验性 用户定义的
@staticInterop
类 不再能实现JSAny
或JSObject
。使用情况应迁移到JSObject.fromInteropObject
或定义为扩展类型。 - 实验性
JSArray
和JSPromise
现在具有泛型参数。 - 实验性 各种扩展成员已被移动或重命名。要了解更新的扩展,请参考
JSAnyUtilityExtension
和JSAnyOperatorExtension
。
dart:typed_data
#- 类型化数据的不可修改视图类将在 Dart 3.4 中被弃用。不要使用这些类的构造函数,而是在类型化数据列表上使用新的
asUnmodifiableView
方法。
dart:nativewrappers
#- 实验性 所有本地包装器类现在都被标记为
base
,因此它们的任何子类型都不能被实现。
工具
#生产 JavaScript 编译器 (dart2js)
#- 传递给
noSuchMethod
的Invocation
不再具有缩小的memberName
,即使在使用--minify
编译时也是如此。
Wasm 编译器 (dart2wasm)
#- 实验性 不允许导入旧的 JS 交互库。建议使用
dart:js_interop
和dart:js_interop_unsafe
代替。
分析器
#实验性 分析器现在会报告无效的
dart doc
注释指令。由于 类型提升方面的改进,以下分析器诊断可能在以前通过分析的现有代码上触发
unnecessary_non_null_assertion
unnecessary_cast
invalid_null_aware_operator
Linter
#iterable_contains_unrelated_type
和list_remove_unrelated_type
lints 已被移除。考虑迁移到扩展的collection_methods_unrelated_type
lint。以下 lints 已被移除,因为它们在健全的空安全下不再是必需的。您应该从您的
analysis_options.yaml
文件和任何忽略注释中移除它们的配置。always_require_non_null_named_parameters
avoid_returning_null
avoid_returning_null_for_future
3.2.0
#语言
#- 语言版本化 更改了可推翻模式的拆分点 为顶层模式,因此,无论受检对象是否可能引发异常,if-case 语句中的类型提升都保持一致。
库
#dart:cli
#- 实验性 已弃用
waitFor
函数。
dart:convert
#- 更改了
utf8.encode()
和Utf8Codec.encode()
的返回值类型 从List<int>
到Uint8List
。
dart:developer
#- 已弃用
Service.getIsolateID
方法。
dart:ffi
#- 更改了
NativeCallable.nativeFunction
,因此,调用现在在接收器已关闭时引发错误,而不是返回nullptr
。
dart:io
#dart:js_interop
#- 实验性 已移除
JSNumber.toDart
,取而代之的是toDartDouble
和toDartInt
。 - 实验性 已移除
Object.toJS
,取而代之的是Object.toJSBox.
。 - 实验性 使用
dart:js_interop
的外部 JS 交互 API 被限制为一组允许的类型。 - 实验性 禁止在 dart2wasm 上使用
isNull
和isUndefined
。 - 实验性 更改了
typeofEquals
和instanceof
API,使其都返回 bool 而不是JSBoolean
。此外,typeofEquals
现在接受String
而不是JSString
。 - 实验性 更改了
JSAny
和JSObject
类型,使其仅可由用户@staticInterop
类型实现,而不是扩展。 - 实验性 更改了
JSArray.withLength
,使其接受int
而不是JSNumber
。
工具
#开发 JavaScript 编译器 (DDC)
#- 为 JavaScript
Symbol
和BigInt
类型添加了拦截器;它们不应再与package:js
类一起使用。
生产 JavaScript 编译器 (dart2js)
#- 为 JavaScript
Symbol
和BigInt
类型添加了拦截器;它们不应再与package:js
类一起使用。
分析器
#语言版本化 私有 final 字段提升 可能导致以下分析器警告在以前通过分析的现有代码上触发
dartclass C { final num? _x = null; void test() { if (_x != null) { print(_x! * 2); // unnecessary_non_null_assertion print(_x?.abs()); // invalid_null_aware_operator } if (_x is int) { print((_x as int).bitLength); // unnecessary_cast } } }
3.1.0
#库
#dart:async
#- 为纯抽象类添加了
interface
修饰符:MultiStreamController
、StreamConsumer
、StreamIterator
和StreamTransformer
。
dart:io
#- 将
sameSite
添加到Cookie
类,并添加了SameSite
类. FileSystemEvent
是sealed
。这意味着FileSystemEvent
不能被扩展或实现。
dart:js_interop
#- 实验性 已移除
ObjectLiteral
;使用{}.jsify()
创建没有命名成员的对象文字。
package:js
#external
@staticInterop
成员和external
扩展成员不再能用作撕裂。声明一个闭包或一个非external
方法来调用这些成员,并改用它。external
@staticInterop
成员和external
扩展成员将为具有可选参数的方法生成略微不同的 JS 代码。
3.0.0
#语言
#语言版本化 更改了 switch case 的解释,从常量表达式到模式。
语言版本化 已升级到 Dart 3.0 的库的类声明 默认情况下不再能用作 mixin。
Dart 报告编译时错误 如果
continue
语句的目标是 标签,而该标签不是循环(for
、do
和while
语句)或switch
成员。
库
#- 以下现有类已变为 mixin 类:
Iterable
、IterableMixin
、IterableBase
、ListMixin
、SetMixin
、MapMixin
、LinkedListEntry
、StringConversionSink
。
dart:core
#- 已弃用 已弃用的 API。
dart:async
#- 已移除 已移除已弃用的
DeferredLibrary
类。
dart:collection
#- 语言版本化 平台库的更改。
dart:developer
#- 已移除 已移除已弃用的
MAX_USER_TAGS
常量。使用maxUserTags
代替。 - 已移除 已移除已弃用的
Metrics
、Metric
、Counter
和Gauge
类,因为它们在 Dart 2.0 之后就一直无法使用。
dart:ffi
#- 实验性 已弃用
@FfiNative
注解现在已被弃用。使用情况应更新为使用@Native
注解。
dart:html
#- 已移除 已移除已弃用的
registerElement
和registerElement2
方法在Document
和HtmlDocument
中。
dart:math
#- 语言版本化
Random
接口只能被实现,不能被扩展。
dart:io
#- 更新了
NetworkProfiling
以适应 vm_service:11.0.0 中引入的新的String
id。
2.19.0
#语言
#- 将更多代码标记为不可达,因为类型
Null
和Never
。 - 不要将不可访问的私有名称委托给
noSuchMethod
. - 报告编译时错误 针对顶层类型推断期间的所有循环依赖关系。
库
#dart:convert
#- 已移除 之前已弃用的 API [
DEFAULT_BUFFER_SIZE
] 在JsonUtf8Encoder
中已被移除。
dart:developer
#- 已移除 已移除之前已弃用的 API
kInvalidParams
、kExtensionError
、kExtensionErrorMax
和kExtensionErrorMin
在ServiceExtensionResponse
中。
dart:ffi
#- 更改了
Pointer
的运行时类型参数为Never
,为完全移除运行时类型参数做准备。更改了Pointer.toString
,使其不再报告任何类型参数。
dart:io
#- 不允许使用负数或十六进制内容长度标头.
File.create
现在接受新的可选exclusive
bool
参数,当它是true
时,如果目标文件已存在,则操作将失败。- 多次调用
ResourceHandle.toFile()
、ResourceHandle.toSocket()
、ResourceHandle.toRawSocket()
或ResourceHandle.toRawDatagramSocket()
现在会引发StateError
。
dart:isolate
#- 恢复了
SendPort.send
,使其在发送消息到已知不共享相同代码的隔离区之间时,恢复对消息内容的严格检查。
dart:mirrors
#- 已移除 已移除 API
MirrorsUsed
和Comment
。
package:js
#- 预览功能
@staticInterop
的重大更改- 不允许使用此注释的类使用
external
生成式构造函数。有关更多详细信息,请参阅 48730 和 49941。 - 不允许使用此注释的类的外部扩展成员使用类型参数.
- 使用此注释的类还应具有
@JS
注释。 - 使用此注释的类不能被没有此注释的类实现。
- 不允许使用此注释的类使用
dart2js
#2.18.0
#语言
#库
#dart:io
#- 将
dart:io
中RedirectException
的uri
属性更改为可空。. - 根据
SCREAMING_CAPS
约定,删除了dart:io
网络 API 中的常量。. - Dart VM 退出后不再自动恢复初始终端设置。
工具
#Dart 命令行
#2.17.0
#库
#dart:io
#- 在
HttpClient
中添加了新的connectionFactory
属性。. - 在
HttpClient
中添加了新的keyLog
属性,它允许将 TLS 密钥记录到日志中以进行调试。 - 删除了
dart:io
中遵循SCREAMING_CAPS
约定的常量。 - 在
SecurityContext
中添加了一个新的allowLegacyUnsafeRenegotiation
属性,它允许为客户端安全套接字进行 TLS 重新协商。
工具
#Dart 命令行
#- 已弃用 弃用了独立的
dart2js
工具。 - 已弃用 弃用了独立的
dartdevc
工具。 - 已移除 删除了独立的
dartdoc
工具。
2.16.0
#库
#dart:io
#- 在 Windows 上,
Directory.rename
将不再删除目录,如果newPath
指定了一个目录。相反,将抛出FileSystemException
。 - 已移除 删除了
Platform.packageRoot
API。
dart:isolate
#工具
#Dart 命令行
#- 已弃用 弃用了独立的
dartanalyzer
工具。 - 已弃用 弃用了独立的
dartdoc
工具。 - 已移除 删除了已弃用的独立的
pub
工具。
2.15.0
#库
#dart:io
#- 更新了
SecurityContext
类,将最低 TLS 协议版本设置为 TLS1_2_VERSION (1.2) 而不是 TLS1_VERSION。
dart:web_sql
#dart:html
#- 删除了
window.openDatabase
(与上面删除的dart:web_sql
相关)。
工具
#Dart 命令行
#- 删除了独立的
dart2native
工具。. - 删除了独立的
dartfmt
工具。
Dart VM
#- 删除了对
dart-ext:
样式的原生扩展的支持。 - 将通过
Isolate.spawn()
API 生成的隔离区分组,以在相同的托管堆上运行,因此共享各种 VM 内部数据结构。
2.14.0
#库
#dart:io
#HttpClient
中的 setter 回调.authenticate
和.authenticateProxy
现在必须接受一个可空realm
参数(针对迁移前的空安全代码)。
dart:typed_data
#- 此库公开的大多数类型不再可以扩展、实现或混合。
工具
#Dart VM
#- Expandos 和
Dart_NewWeakPersistentHandle
和Dart_NewFinalizableHandle
的object
参数不再接受Pointer
和Struct
的子类型。
Dart 命令行
#- 弃用了独立的
dart2native
工具。 - 弃用了独立的
dartfmt
工具。
dart2js
#dart2js
不再支持旧版浏览器,因为它默认情况下会生成 ES6+ JavaScript。
Dart 开发编译器 (DDC)
#- 更改了
package:js
类的子类型关系,使其更准确并与 Dart2JS 保持一致。
2.13.0
#库
#package:js
#- 不再有效 在非匿名 JS 互操作类中,将与
@Native
注释匹配的String
用在@JS()
注释中。
2.12.0
#语言
#库
#dart:ffi
#- 弃用了使用泛型
T
的调用,例如sizeOf<T>
、Pointer<T>.elementAt()
、Pointer<T extends Struct>.ref
和Pointer<T extends Struct>[]
。 - 弃用了
package:ffi
中的allocate
,因为它将不再能够泛型地调用sizeOf<T>
。 - 弃用了没有本地成员的
Struct
的子类型。.
工具
#Dart VM
#Dart_WeakPersistentHandle
不再在引用对象被垃圾回收时自动删除自身,以避免竞争条件。- 将
Dart_WeakPersistentHandleFinalizer
重命名为Dart_HandleFinalizer
并删除了它的handle
参数。
Pub
#2.10.0
#工具
#Dart VM
#- 将
dart_api_dl.cc
重命名为dart_api_dl.c
并更改为纯 C 文件。
2.9.0
#库
#dart:convert
#- 在将包含未配对代理的字符串编码为 UTF-8 时,未配对代理将被编码为替换字符 (
U+FFFD
)。 - 在解码 UTF-8 时,编码的代理将被视为格式错误的输入。
- 更改了为格式错误的输入序列发出的替换字符数量,使其与 WHATWG 编码标准 相匹配,当使用
allowMalformed: true
解码 UTF-8 时。
dart:html
#CssClassSet.add()
和CssClassSet.toggle
现在返回false
而不是null
,如果CssClassSet
对应于多个元素。
dart:mirrors
#工具
#Dart VM
#- 在使用
print
函数打印字符串时,默认实现将打印字符串中的任何未配对代理为替换字符 (U+FFFD
)。 - Dart API 中的
Dart_StringToUTF8
函数将未配对代理转换为替换字符。
2.8.1
#语言
#- 修复了实现错误,其中局部变量推断会错误地使用类型变量的提升类型。
- 修复了实现错误,围绕
implements Function
、extends Function
或with Function
子句不再生效,因为 Dart 2.0.0。
库
#dart:async
#- 更改了
StreamSubscription.cancel()
的返回类型为Future<void>
。. - 将
runZoned()
函数拆分为两个函数:runZoned()
和runZonedGuarded()
,其中后者有一个必需的onError
参数,而前者没有。 - 传递给
Completer.completeError()
、Stream.addError()
、Future.error()
等的错误不再可以为空。 - 使堆栈跟踪不为空。.
dart:core
#RuneIterator
上的三个成员在第一次调用moveNext()
之前访问时不再返回null
。String.fromEnvironment()
的defaultValue
默认值为现在是空字符串而不是null
。int.fromEnvironment()
的defaultValue
参数的默认值为现在为零。
dart:ffi
#- 将
Pointer.asFunction()
和DynamicLibrary.lookupFunction()
更改为扩展方法。
dart:io
#- 更改了
HttpHeaders
方法add()
和set
的签名。 Socket
类现在在设置或获取套接字选项时抛出SocketException
,如果套接字已被显式销毁或升级为安全套接字。Process
类现在在访问exitCode
getter 时抛出StateError
,如果进程已分离(ProcessStartMode.detached
和ProcessStartMode.detachedWithStdio
)。Process
类现在也抛出,当未连接到子进程的 stdio(ProcessStartMode.detached
和ProcessStartMode.inheritStdio
)时,访问stdin
、stdout
和stderr
getter。- 如果
FileStat.stat()
或FileStat.statSync()
失败,则返回的虚拟对象现在包含 Unix 纪元时间戳,而不是null
,用于accessed
、changed
和modified
getter。 HeaderValue
类现在在两个无效的边缘情况下解析得更严格。
工具
#Dart 开发编译器 (DDC)
#我们修复了 DDC 和 Dart2JS 之间的一些不一致,这样用户就不太可能遇到一种编译器接受但另一种编译器失败的代码。
- 删除了 DDC 的旧版(基于分析器)版本。
- 传递给 JavaScript 的函数,使用推荐的
package:js
互操作规范,现在必须使用allowInterop
调用包装。 @JS()
类中的构造函数必须用external
标记。
dart2js
#- 相应的类型参数边界现在只需要是相互子类型,而不是在重命名绑定类型变量和使所有顶级类型相等后结构上相等。
- 类型现在已标准化。
@JS()
类中的构造函数必须用external
标记。- 完全删除了
--package-root
标志,该标志在 Dart 2.0.0 中已隐藏并禁用。
2.7.1
#2.7.0
#语言
#库
#dart:io
#- 添加了
IOOverrides.serverSocketBind
,以帮助编写想要模拟ServerSocket.bind
的测试。
2.6.0
#语言
#- 更改了在
FutureOr
上下文中使用Null
值时的推断。即,类似于Null
<:FutureOr<T>
的约束现在会产生Null
作为T
的解决方案。
库
#dart:ffi
#- API 现在使用静态扩展成员。
- 删除了内存管理
Pointer.allocate
和Pointer.free
。 Pointer.offsetBy
已删除,请改用cast
和elementAt
。
2.5.0
#库
#- 各种核心库中的各种方法和属性,以前声明的返回类型为
List<int>
,已更新为声明返回类型为Uint8List
。
dart:io
#Cookie
类的构造函数的name
和value
可选位置参数现在是必须的。Cookie
类的name
和value
setter 现在验证 字符串是否由允许的字符集组成,并且不为空。
工具
#Pub
#- 发布到 pub.dev 的软件包不再可以包含 git 依赖项。
2.4.0
#语言
#库
#dart:isolate
#- 使用 dart2js 或 DDC 编译时,
Isolate.resolvePackageUri
将始终抛出UnsupportedError
。
dart:async
#- 修复了
StreamIterator
类中的一个错误,其中await for
允许null
作为流。
2.2.0
#库
#package:kernel
#- Kernel AST API 中
InstanceConstant
类上的klass
getter 已重命名为classNode
,以保持一致性。 - 更新了
Link
实现,以在 Windows 上使用真正的符号链接而不是连接。
2.1.1
#库
#dart:io
#工具
#Dart VM
#- 修复了使用
dart:mirrors
时的一个健全性漏洞,该漏洞以违反其静态类型的方式以不正确的方式反射地调用方法。
2.1.0
#语言
#- 在 2.0.0 中,许多本应检测并报告的静态错误并未得到支持。现在报告了这些错误,这意味着现有的不正确代码可能会显示新的错误。
工具
#dart2js
#- 常量映射中不允许重复键,会导致编译时错误。
2.0.0
#语言
#- 用使用类型推断和运行时检查的健全静态类型系统替换了不健全的可选静态类型系统,以前称为 强模式。
- 标记为
async
的函数现在同步运行,直到第一个await
语句。
库
#- 将核心库中的常量从
SCREAMING_CAPS
重命名为lowerCamelCase
。 - 为核心库类添加了许多新方法,如果您实现这些类的接口,则需要实现这些方法。
- 使用 Dart 为网页开发时,不再支持
dart:isolate
和dart:mirrors
。
工具
#Pub
#- 用 新的构建系统 替换了 pub 的基于转换器的构建系统。
除非另有说明,否则此网站上的文档反映了 Dart 3.5.3。 页面最后更新时间为 2024-08-06。 查看源代码 或 报告问题.