Dart In Action -Dart快速入门(二)

简介: 写在前面本文基本上是将dart官网部分内容进行翻译,没兴趣的请出门左转至Dart的官网,有兴趣的同志请继续阅读本文。Flutter教程在这里Dart的一些重要概念当你学习Dart语言时,记住这些事实和概念:每个变量都是一个对象,而每个对象都是类的实例。

写在前面

本文基本上是将dart官网部分内容进行翻译,没兴趣的请出门左转至Dart的官网,有兴趣的同志请继续阅读本文。
Flutter教程在这里

Dart的一些重要概念

当你学习Dart语言时,记住这些事实和概念:

  • 每个变量都是一个对象,而每个对象都是类的实例。甚至数字、函数和null都是对象。所有对象都继承自Object
  • 尽管Dart是强类型的,但是类型注释是可选的,因为Dart可以推断类型。在之前上一节的代码中var number = 42;,number被推断为int类型。当你不想显示地声明一个变量的类型,那么您可以使用特殊类型dynamic
  • Dart是支持泛型,如List<int>(一个数字列表)或者List<dynamic>(一个任何类型的列表).
  • Dart支持顶级函数(如main()),以及绑定到类或对象(分别是静态方法和实例方法)的函数。您还可以在函数(嵌套或局部函数)中创建函数。
  • 类似地,Dart支持顶级变量,以及绑定到类或对象(静态和实例变量)的变量。实例变量有时被称为字段或属性。
  • 与Java不同的是,Dart没有关键字public、protected和private。如果标识符以下划线(_)开头,则该标识符对其库是私有的。 在之后的教程中我们会详细讲解。
  • 标识符(变量名、方法名、类名)可以以字母或下划线(_)开头,后面的可以是这些字符加上数字的任何组合。
  • Dart工具可以报告两种问题:警告和错误。警告只是表明您的代码可能不工作,但它们不会阻止您的程序执行。错误可以是编译时错误,也可以是运行时错误。编译时错误阻止了代码的执行;运行时错误导致代码执行时引发异常。

关键字

abstract do import super
as dynamic in switch
as else interface sync*
async enum is this
async* export library throw
await external mixin true
break extends new try
case factory null typedef
class final part void
const finally rethrow while
continue for return with
covariant get set yield
default if static yield*
deferred implements

以上的字段均为保留字段,不能用于标识符。

变量

下面的代码展示了创建一个变量并进行初始化:

var name = 'Bob';

变量存储引用。名为name的变量包含对字符串对象的引用,值为“Bob”。
变量name的类型被推断为String,但是您可以通过指定它来更改该类型。如果对象不限于单个类型,则指定对象或动态类型,遵循设计指导原则

dynamic name = 'Bob';

另一种方式是显式声明要推断的类型:

String name = 'Bob';

默认值

未初始化的变量的初始值为null。甚至具有数字类型的变量最初也是null,因为数字就像dart中的其他东西一样也是对象。

int lineCount;
assert(lineCount == null);

注意:在生产代码中,assert()调用将被忽略。在开发期间,assert(condition)抛出异常,除非条件为真。

目录
相关文章
|
数据可视化 定位技术
ArcGIS应用基础3 属性表的操作-以人口密度分布图为例
😀在本文中,作者以人口密度分布图为例,详细讲解了属性表的连接、字段添加和计算等功能,最终将人口密度可视化到地图上进行了底图整饰输出。
1025 0
|
5月前
|
安全 Linux 测试技术
【实战指南】记一次定位fd泄漏问题
本文记录了一次文件描述符(fd)泄漏问题的排查过程。在项目压测中,进程因打开过多文件导致fd资源耗尽,最终无法创建新文件。通过分析错误码、查看/proc/pid/fd路径下的文件句柄信息,定位到临时文件未正确关闭的问题根源,并修复代码中遗漏的close调用。同时总结了Linux下进程资源限制的相关知识点,强调开发中应关注资源使用情况,避免类似问题发生。
263 56
|
12月前
|
安全 数据安全/隐私保护 API
鸿蒙开发:一文了解软键盘相关
软键盘最主要的就是合理的进行避让,不能遮挡可输入组件,再有多个输入框的时候,需要动态的进行设置高度,这一点需要注意。
217 2
鸿蒙开发:一文了解软键盘相关
|
前端开发 Android开发 iOS开发
【Flutter前端技术开发专栏】Flutter在Android与iOS上的性能对比
【4月更文挑战第30天】Flutter 框架实现跨平台移动应用,通过一致的 UI 渲染(Skia 引擎)、热重载功能和响应式框架提高开发效率和用户体验。然而,Android 和 iOS 的系统差异、渲染机制及编译过程影响性能。性能对比显示,iOS 可能因硬件优化提供更流畅体验,而 Android 更具灵活性和广泛硬件支持。开发者可采用代码、资源优化和特定平台优化策略,利用性能分析工具提升应用性能。
783 0
【Flutter前端技术开发专栏】Flutter在Android与iOS上的性能对比
|
传感器 前端开发 Android开发
在 Flutter 开发中,插件开发与集成至关重要,它能扩展应用功能,满足复杂业务需求
在 Flutter 开发中,插件开发与集成至关重要,它能扩展应用功能,满足复杂业务需求。本文深入探讨了插件开发的基本概念、流程、集成方法、常见类型及开发实例,如相机插件的开发步骤,同时强调了版本兼容性、性能优化等注意事项,并展望了插件开发的未来趋势。
341 2
|
Java Linux Android开发
深入理解Android开发:从基础到高级
【9月更文挑战第17天】本文将深入探讨Android开发的各个方面,包括应用开发、操作系统等。我们将通过代码示例来展示如何创建一个简单的Android应用,并解释其背后的原理。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和启示。
|
机器学习/深度学习 人工智能 算法
【机器学习】概率模型在机器学习中的应用:以朴素贝叶斯分类去为例
【机器学习】概率模型在机器学习中的应用:以朴素贝叶斯分类去为例
406 0
|
自然语言处理 算法 Java
NLP快速入门:手把手教你用HanLP做中文分词
NLP快速入门:手把手教你用HanLP做中文分词
1422 0
NLP快速入门:手把手教你用HanLP做中文分词
蚂蚁金服发布「定损宝」,推动图像定损技术在车险领域的应用
6 月 27 日,蚂蚁金服在北京宣布向保险行业全面开放技术产品「定损宝」,用 AI 技术模拟车险定损环节中的人工作业流程,帮助保险公司实现简单高效的自动定损,成为图像定损技术在车险领域的首次商业应用。
1881 0
蚂蚁金服发布「定损宝」,推动图像定损技术在车险领域的应用