我应该输入类型吗?

2023-12-11

创建变量时应该指定类型吗?

仅仅声明关键字“var”有什么缺点吗?

这两者有什么区别吗?

var a = 0; int a = 0;


优点缺点

ONGOING WORK

最佳实践

推荐使用var or final关键字,不指定类型注释,并隐式推断类型已知局部变量。否则,建议指定类型注释。至于dynamic关键字,当您进行手动类型检查时,在特定用例中应该非常谨慎地使用它。例如print(myVariable is SomeType).

omit_local_variable_typesDart linter 规则鼓励省略类型注释已知局部变量. always_specify_types鼓励为不属于以前的 linter 规则范围的情况指定类型注释。

1. Flutter 存储库的风格指南

1.1 避免使用var

所有变量和参数都是类型化的;避免使用“动态”或“对象” 在任何情况下你都可以找出实际类型。始终专注 尽可能使用泛型类型。显式输入所有列表和地图 文字。

这实现了两个目的:它验证该类型 编译器会推断出与您期望的类型匹配,并且它使 在类型不明显的情况下代码自记录(例如 当调用构造函数以外的任何内容时)。

始终避免“var”。如果您明确表明 类型未知,但更喜欢“对象”和强制转换,如使用动态 禁用所有静态检查。

2. Dart Lint 规则

2.1 omit_local_variable_types

CONSIDER省略局部变量的类型注释。

通常,局部变量的类型很容易推断,因此 没有必要对它们进行注释。

2.2 always_specify_types

DO指定类型注释。

Avoid var当指定类型未知且简写时 删除类型注释。使用dynamic如果您明确表示 类型未知。使用Object如果你明确表示你想要 实现的对象== and hashCode.

参考

您可以参考Flutter 存储库的风格指南,完整列表Dart 的 Linter 支持 Lint 规则, and 有效的 Dart 风格指南.

Note, Flutter 存储库的风格指南在 flutter 社区中使用,并且优先于 LinterRules 和Effective Dart 的风格指南,尤其是在 repo 贡献中。据我所见,Flutter 存储库的风格指南更像是一个超集风格指南,应该遵守 Dart Linter 规则。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我应该输入类型吗? 的相关文章

  • Flutter基于Shared Preference设置启动页面

    我一直在尝试根据我的共享首选项设置加载不同的页面 但没有成功 根据 stackoverflow 中找到的几篇文章 我最终得到了以下解决方案 import dart async import package flutter material
  • 从 Flutter 中删除底部导航栏上的默认内边距或边距

    这是问题的图片 它是底部导航栏上的默认填充吗 如果是 我该如何删除它 正如您在下面的代码中看到的 我在 BottomNavigationBarItem 内部有一个容器和一个图标 但图标和栏之间有一个空格 return Scaffold bo
  • Charts_flutter - 如何设置 x 轴刻度上的间隔

    我正在使用以下代码片段绘制一些实时时间序列折线图 new SizedBox height MediaQuery of context size height 4 child new charts TimeSeriesChart new ch
  • 如何使用 Dart 设置日期格式?

    我有一个实例DateTime我想将其格式化为字符串 我怎么做 我想将日期转换为字符串 例如 2013 04 20 您可以使用intl https www dartdocs org documentation intl latest intl
  • 将 TextField 下划线颜色更改为渐变

    我可以更改轮廓颜色TextField s使用以下代码将颜色更改为纯色 TextField decoration InputDecoration focusedBorder UnderlineInputBorder borderSide Bo
  • Flutter ListView 未更新

    我想在 Flutter 中创建一个 ListView 当新数据到达时它会更新 我正在使用 RefreshIndicator 来触发列表加载以进行测试 对于我的列表 我使用 ListBuilder 将对象映射到视图对象 据我了解 setSta
  • 使用 Swift 和 Kotlin 重新创建 Flutter 的 ios 和 android 文件夹

    您好 我刚刚发现可以使用 Swift 和 Kotlin 创建 Flutter 项目 但是 我已经投资了当前的项目 并希望重新创建ios and android如 Swift 和 Kotlin 目前默认为 Java 和 ObjC Thanks
  • 日期时间时区反序列化

    我为我的应用程序开发了一个 Rest API 它以以下格式发送到应用程序日期2018 09 07T17 29 12 02 00 我猜 2 00 代表我的时区作为一个对象的一部分 在我的 Flutter 应用程序中 一旦我反序列化接收到的对象
  • 飞镖相当于长? [复制]

    这个问题在这里已经有答案了 java的相当于什么longDart 中的数据类型 应该int or long使用 In Java https docs oracle com javase tutorial java nutsandbolts
  • “@required”注释作为错误而不是警告

    现在在我的 Flutter 项目中 当我用注释构造函数参数时 required当实例化构造函数时忘记它 我从 IDE 收到一条轻微警告 表明该参数是必需的 我希望这在 IDE 中显示为实际错误 有办法进去吗analysis options
  • 如何在不影响背景内容的情况下弯曲底部导航栏角?扑

    我创建了一个带有颤动的自定义底部导航栏 但我仍然可以看到白色填充了弧角后面的背景 我想看看背景内容 这就是底部导航栏的样子 正如你所看到的 角落里充满了白色 这是我的底部导航栏代码 bottomNavigationBar Container
  • 无法使用 flutter 访问移动应用程序中 iframe 内的 Webview 元素

    我正在尝试使用 flutter 访问移动应用程序中的登录表单 网络视图 来编写我的自动化测试用例 原生元素是可以访问的 但是当我尝试访问框架内的 web 视图上的元素时 它不允许我访问该元素 如果有人遇到类似问题 请提供帮助 我尝试使用以下
  • 导航到 Flutter 中的新屏幕

    如何在 Flutter 中导航到新屏幕 这些问题很相似 但比我问的要多 Flutter 导航到新屏幕 并清除所有以前的屏幕 https stackoverflow com questions 52689049 flutter navigat
  • Pub 失败,[1] 解决依赖关系... code_transformers 的版本约束不兼容

    下面是我的 pubspec yaml 文件 name MyApp description A sample command line application dependencies csv sheet any redstone any s
  • 在Flutter中,如何使按钮和文本字段具有相同的高度?

    我知道TextField has TextStyle 其中有一个height财产 这只是一个基于的乘数fontSize 但是如何使所有小部件具有相同的高度 无论字体大小 此外 是否有以下等效方法 在几乎任何其他编程语言中 btnLogin
  • 如何在 Dart 中运行交互式流程?

    下面的测试尝试运行 less pager 命令并返回一次 用户退出 问题是它不等待用户输入 而是 仅列出整个文件并退出 平台 xubuntu 12 04 Dart 编辑器版本 13049 import dart io void main s
  • Flutter android 风味生成 apk

    我正在尝试使用 flutter 设置 Android 风格 我有两个入口点 lib main prod dart lib main dev dart 我还在我的 gradle 文件中添加了以下内容 flavorDimensions vers
  • Flutter - 如何在 ListView 构建器中列出 forEach() 值?

    您好 我正在尝试将数据从 JSON 列出到 Listview Builder 但 Flutter 给了我这个错误 Column s children must not contain any null values but a null v
  • 如何更改或替换 Flutter 中的 ImageCache?

    我想更改 Flutter 应用程序中 ImageCache 的行为 例如 我想尝试不同的驱逐策略 或者 我只是想要零缓存 用于实验 如何替换更改ImageCache 创建一个继承自 WidgetsFlutterBinding 的类 重写该类
  • 如何根据父级的大小来布局小部件?

    假设您有一个可能具有可变大小的父窗口小部件 例如 var container new Container height 200 0 Imagine this might change width 200 0 Imagine this mig

随机推荐