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 属性表的操作-以人口密度分布图为例
😀在本文中,作者以人口密度分布图为例,详细讲解了属性表的连接、字段添加和计算等功能,最终将人口密度可视化到地图上进行了底图整饰输出。
804 0
|
2月前
|
安全 Linux 测试技术
【实战指南】记一次定位fd泄漏问题
本文记录了一次文件描述符(fd)泄漏问题的排查过程。在项目压测中,进程因打开过多文件导致fd资源耗尽,最终无法创建新文件。通过分析错误码、查看/proc/pid/fd路径下的文件句柄信息,定位到临时文件未正确关闭的问题根源,并修复代码中遗漏的close调用。同时总结了Linux下进程资源限制的相关知识点,强调开发中应关注资源使用情况,避免类似问题发生。
152 44
|
9月前
|
安全 数据安全/隐私保护 API
鸿蒙开发:一文了解软键盘相关
软键盘最主要的就是合理的进行避让,不能遮挡可输入组件,再有多个输入框的时候,需要动态的进行设置高度,这一点需要注意。
161 2
鸿蒙开发:一文了解软键盘相关
|
10月前
|
传感器 前端开发 Android开发
在 Flutter 开发中,插件开发与集成至关重要,它能扩展应用功能,满足复杂业务需求
在 Flutter 开发中,插件开发与集成至关重要,它能扩展应用功能,满足复杂业务需求。本文深入探讨了插件开发的基本概念、流程、集成方法、常见类型及开发实例,如相机插件的开发步骤,同时强调了版本兼容性、性能优化等注意事项,并展望了插件开发的未来趋势。
292 2
|
Java Linux Android开发
深入理解Android开发:从基础到高级
【9月更文挑战第17天】本文将深入探讨Android开发的各个方面,包括应用开发、操作系统等。我们将通过代码示例来展示如何创建一个简单的Android应用,并解释其背后的原理。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和启示。
|
Dart 前端开发 安全
【Flutter前端技术开发专栏】Flutter中的线程与并发编程实践
【4月更文挑战第30天】本文探讨了Flutter中线程管理和并发编程的关键性,强调其对应用性能和用户体验的影响。Dart语言提供了`async`、`await`、`Stream`和`Future`等原生异步支持。Flutter采用事件驱动的单线程模型,通过`Isolate`实现线程隔离。实践中,可利用`async/await`、`StreamBuilder`和`Isolate`处理异步任务,同时注意线程安全和性能调优。参考文献包括Dart异步编程、Flutter线程模型和DevTools文档。
474 1
【Flutter前端技术开发专栏】Flutter中的线程与并发编程实践
|
机器学习/深度学习 人工智能 算法
【机器学习】概率模型在机器学习中的应用:以朴素贝叶斯分类去为例
【机器学习】概率模型在机器学习中的应用:以朴素贝叶斯分类去为例
292 0
|
Dart Java Android开发
Flutter插件开发:开发与使用的技术解析
【4月更文挑战第26天】本文详细介绍了Flutter插件开发,包括创建插件项目、编写原生代码(Android和iOS)、注册与使用插件。通过Flutter命令行工具生成插件,使用MethodChannel进行Dart与原生平台的通信。示例展示了如何获取设备信息并展示在Flutter应用中。文章还提到插件测试与发布,强调了兼容性与性能的重要性,指出Flutter插件是扩展应用功能的关键。
|
数据采集 JavaScript 前端开发
分享58个NodeJs爬虫源码总有一个是你想要的
分享58个NodeJs爬虫源码总有一个是你想要的
170 4