C 系程序员20分钟学会 Dart 语言

1. 概述

Dart 是 Google 下一代操作系统 Fuchsia 的御用程序开发语言,而是 App 跨平台框架 Flutter 使用的开发语言。它是一种面向对象的语言,使用 C 风格语法,揉合了 Javascript、Python、Java 等语言的相关特性。

如果之前熟悉这几门语言,可以快速入门。

2. 应知就会

2.1. 语句结束符

同 C 语言一样,Dart 所有语句都以 ; 结束。

2.2. 注释

同 Javascript,单行用 //, 多行用 /* */

如果要支持文档生成工具,则单行注释用 ///,多行注释用 /** */, 例如:

/// This is a documentation comment

/**
  This , too,
  is a
  documentation comment.
*/

2.3. 变量声明与类型

Dart 是强类型语言,即所有变量都是有类型的。

同 C 语言一样,可以在声明变量时指定类型 <specific_type> variable; ,如:

int a = 3;

也可以同 Javascript 中一样,用 var a = 3; 声明,此时 Dart 会从赋值语句的右值推导出变量的类型,如本例中将推导出 a 变量是 int 型。
那么之后该变量的类型就确定了,不能再赋值其它类型的值了,例如本例中再给 a 赋值字符串值编译会通不过: a = "String Value";

如果将变量声明为 dynamic 类型,那么当变量赋值为一个类型的值后,可随时再次赋值为其它类型的值,如:

dynamic x = 42;
x = "Hello World";

同 Java 一样, Dart 中的一切都是对象,都最终继承自 Object 类,因此将变量声明为 Object 类型类似于声明为 dynamic 类型,可以赋值任何类型的值,如:

Object x = 42;
x = "Hello World";

两都区别是: dynamic 类型告诉 Dart 不要查检变量的类型,即关闭类型检测功能,因此若引用 dynamic 变量上不存在的方法时,编译是能通过的,但在运行时出错; 而引用
Object 类上不存在的方法时,编译就不能通过。

2.4. 常量和 final 值

同 Java 类似,常量值用 const 修饰,常量值在编译时就被确定,不能修改,如:

const x = "Hello";
const String y = "world";

final 变量可以在运行时赋值,但只能赋值一次,例如想确定程序启动时间值,可以声明为一个 final 变量,如:

final x = DateTime.now();

const 不仅能修饰变量,也可以修饰值,如:

List lst = const [1, 2, 3];
lst[0] = 999; // compile error

2.5. 类型

基本类似用小写开头,如 int, double, num, bool, 其中 numint, double 的父类。其它类型以大写开头,如 String, List, Map

2.5.1. 数字型

同 C 一样,int, double, num 都支持 +, -, *, /, %。数字型唯一特殊的操作符是 ~/,表示返回除法结果的整数部分,功能同 Python 中的 // 操作符,如:

int x = 3;
double y = 2.0;
x = x ~/ y;
print(x); // 1

同 C 中一样,dart 中 x = x + y 也可以缩写为 x += y,这种缩写同样适用于 -, *, /, %~/ 操作符,如 x = x ~/ y 可写为 x ~/= y

也有 C 中类似的 v++, ++v, v--, --v 等前后缀操作符及三元条件表达式如: x = a ? b : c

Dart 中还支持一种特有的二元条件表达式,如 x = a ?? b;,表示当 a 有值时(即不为 null 值,声明的变量未初始化时值默认为 null),x 赋值为 a,否则赋值为 b。

2.5.2. 字符串型 String

同 Javascript 中类似,字符串即可以用单引号 'xxx',也可以用双引号 "xxx" 表示。字

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值