你一定在里面看到过analysis_options.yaml:
analyzer:
exclude: [build]
strong-mode:
implicit-casts: false
linter:
rules:
- camel_case_types
Run Code Online (Sandbox Code Playgroud)
两者都在编译时使用吗?两者之间有什么区别?
简短的回答是他们专注于不同的事情。
分析器的目标是检查您的程序是否有效。它检查语法错误和类型错误。从历史上看,在 Dart 1 中,这是进行类型检查的唯一方法,因为编译器会忽略类型,但在 Dart 2 中不再如此。
分析器最终添加了比语言所需更多的检查。即使语言允许,它也可以检测死代码或绝对错误的赋值,因为它具有比语言规范要求的更好的静态分析。通常,分析器会警告无效程序或可能的问题。某些警告默认启用,而其他警告则需要启用,因为它们可能会导致错误警告。每个问题问题的严重性可以配置为错误、警告、提示(或忽略)。Dart 无效总是一个错误。
该绒被开发为一个单独的项目。它仅适用于有效的 Dart 程序,并且旨在强制执行编码风格。该语言不关心您的类是否为Capitalized,您的变量是否为lowerCase,但样式指南说它们应该是,并且 linter 可以通过报告 lint 错误(如果不满足)来强制执行该样式。这就是 linter 所做的:它报告样式违规。由于样式是主观的,因此需要启用所有 lint,默认情况下不启用任何 lint。
棉绒也可以非常具体。有些 lint 仅适用于使用特定库的代码,以便为该代码强制执行特定样式。像 Flutter 这样的项目可能会默认在它创建的包中启用一些 lint。
分析器存在于 linter 之前,如果今天添加,添加到分析器中的一些警告可能会成为 lint。两者都依赖于package:meta将元数据添加到驱动警告/lint 中的注释。分析器现在包括linter 并提供来自两者的错误/警告/提示/lints,因此程序员很少需要区分。主要区别在于 lint 记录在 linter存储库中,有关新 lint 的讨论发生在那里,与分析器中的更改无关。
Dart 包pedantic定义了一组用于所有 Google 内部代码的 lint。它非常严格和固执己见,目的是防止潜在危险的代码和任何不必要的风格讨论。其他包提供其他 lint 集。Dart 团队(目前)还没有推荐的官方 lint 集,只要您遵循style guide 即可。
| 归档时间: |
|
| 查看次数: |
219 次 |
| 最近记录: |