在Flutter中使用Dart的介绍

当涉及到跨平台开发时,Flutter是快速增长的技术之一,而制作Flutter应用程序背后的秘诀是Dart语言。

即使您不熟悉Dart,也可以开始开发Flutter应用程序,本教程将涵盖您需要知道的基本语法和信息,以便您能够自如地构建Flutter应用程序。

什么是Dart?

Dart是一种多功能和客户端优化的语言,用于在任何网络或移动平台上快速开发应用程序,并可用于桌面和嵌入式设备。Dart语言的核心目标是为您提供一套工具和编程语言,使您的工作效率提高,并随着开发人员的要求和需要的增加而不断发展。

Dart是一种全面的语言,提供优秀的语言能力,如Future、Stream、Sound Null Safety等。

Dart的设计对大多数具有不同编程背景的开发者来说都是熟悉的。因此,无论你是否有JavaScript和TypeScript的背景,或者你一直是一个面向对象的程序员,你都会发现使用Dart很熟悉。

而且,由于Dart的架构,杀手锏、热重载和声明式编程都可以在Flutter中实现。

更重要的是,Dart还带有许多内置库,如dart:ync、dart:convert、dart:html、dart:io等,以及一个奇妙的生态系统和出色的软件包管理器pub.dev

无论你是否想使用Flutter,Dart都将是你学习和在你的下一个应用程序中使用的最佳选择。

如果你想快速尝试一下,你可以在线使用dartpad.dev

如何使用Dart

在您开始创建Flutter应用程序之前,您应该了解一些Dart的概念。

1.Main()函数。

每个应用程序的入口是main() 函数。即使你想在控制台打印一些东西,你也必须有一个main() 的部分。

void main() {
  var list = ['apples', 'bananas', 'oranges'];
  list.forEach((item) {
    print('${list.indexOf(item)}: $item');
  });
} 

在Flutter中,你将从PROJECT_ROOT/lib/main.dart 中的main() 函数开始你的应用程序,在那里你将你的主部件传递给runApp() ,它将把它附加到屏幕上。这就是第一个主入口点。

void main() {
  runApp(MyApp());
} 

2.: (分号)。

在Dart中你需要; (分号),在上面的例子中你可以看到。

runApp(MyApp()); 

3.类型和空安全

Dart是一种类型安全的语言。它使用静态类型检查和运行时检查。当你学会了这个语法,你就能更快地理解Flutter代码。下面是一个简单变量的解剖图。

[修改器] [类型] [变量_名称] = [值]。

// e.g: 
final String name = "Majid Hajian"; 

虽然类型是强制性的,但由于类型推理的原因,类型注释是可选的。所以,你可能会遇到这种情况。

var name = "Majid Hajian"; // from now on `name` is a String; 

Dart中最常见的初始化变量修饰符是var,final,const, 和late ,但请记住,当你在变量名前使用类型时,你可以使用所有的修饰符,除了var

var name = "Majid Hajian";
String name = "Majid Hajian";
final String name = "Majid Hajian";
const String name = "Majid Hajian"; 

使用var 或不使用修饰符可以创建一个灵活的变量,这意味着你可以随时改变其值。如果你从不打算修改这个变量,你应该使用final ,它只设置一次变量,或者使用const ,它形成一个编译时常量。

但也有更复杂的情况。让我们来看看MapList 的类型定义。

// Type of a List (Array): List<TYPE_OF_MEMBER>
// e.g: 
List<String> names = ['Majid', 'Hajian'];

// Type of a Map (Key-Values): Map<Key_TYPE, VALUE_TYPE>
// e.g: 
Map<String, number> ages = {
   'sara': 35, 'susan: 20}; 

在很多情况下,你可能没有给Dart分析器提供足够的信息,你可能会面临一个类型转换错误。让我们看一个例子。

var names = []; 

变量类型推断List<dynamic>dynamic 可能是任何类型,因为我们在初始化变量时没有提供数组的可能类型。因此,Dart将类型投给了List<dynamic> ,在这里它可以是任何类型。通过在初始化或启动变量时给值添加注解,我们可以防止这种类型的错误。

final names = <String>[];
// Or
final List<String> names = []; 

从Dart 2.12开始,Dart是一种健全的null安全语言,这意味着你的代码中的类型默认是不可置空的,这表明一个变量不能包含null ,除非你说它们可以。

final String name = null;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值