博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Flutter 学习笔记二】Dart 的基础概念和数据类型
阅读量:7044 次
发布时间:2019-06-28

本文共 2504 字,大约阅读时间需要 8 分钟。

在之前把环境折腾好了之后,我们开始打基础功,先把 dart 学好。

dart 这个语言还是比较奇怪的,之前根本没听过(可能是我孤陋寡闻了),据说有人问 flutter 开发者,为什么使用 dart 语言。开发者回答说:"dart 开发组就在我们隔壁,所以我们决定使用 dart" ?

不过没关系,所有的语言思想都差不多,有经验的入门还是比较简单的。开始进入正题吧~

关于后面 dart ,代码可以在 dartPad 上运行

基本概念

  1. 在 dart 中,所有的东西都是对象,无论是变量,数字或函数,所有的对象都是类的实例,所有的对象都从 Object 类继承
  2. 尽管 dart 是强类型的,但类型申明是可选的,因为 Dart 可以推断出类型,如果要明确的不适用任何类型,请使用特殊类型 dynamic
  3. dart 支持顶级变量的定义
  4. dart 没有 public,protected,private 的概念,如果函数或变量以下划线 _ 开头,则这个函数或变量属于这个包私有

变量与常量

void main() {      // 变量申明  var name = 'enda';    // 变量默认值为 null  int lineCount;  print(lineCount); // null  // 可以在定义变量时指定变量的类型,通过指定变量类型,可以减少编译和运行时间  String name = 'enda';    // 常量定义 常量定义就不能修改    final firstName = 'E';  // 或者申明类型的常量定义  final int age = 20;    const lastName = 'D';  }

数据类型

dart 内置了几种常见的数据类型

  • numbers
  • strings
  • booleans
  • lists (数组)
  • maps
  • runes (用于在字符串中表示 Unicode 字符)
  • symbols

number 类型

number 类型分为 int 和 double

int 的取值范围为 -253 to 253 - 1

double 为 64 位长度的浮点类型

number 常见的操作方位包括: +,-,*,/ 以及位移 >>

int 类型转换

void main() {      // 字符串转 int  var one = int.parse('1');    assert(one == 1);    // 字符串转浮点  var onePointOne = double.parse('1.1');    // int 转字符串  String oneAsString = 1.toString();    // double 转字符串  String piAsString = 3.14159.toStringAsFixed(2);  }

String 类型

可以使用单引号或双引号创建字符串

字符串定义

var str1 = '单引号定义';  var str2 = "双引号定义";  var str3 = "转义 \'s ";

字符串连接

字符串连接,使用 + 操作符

// 字符串连接可以使用 + 号  var str4 = str1 +'-'+ str2;

多行字符串

使用 """''' 来定义多行字符串

// 多行字符串  var str5 = '''多行字符串的定义简单吧''';

raw 字符串

使用 r 来定义

// 使用 r 修饰,表明是 raw 类型的字符串var str6 = r"In a raw string, even \n s";

Boolean 类型

bool 类型只有两个值 truefalse

dart 对 bool 值的检查是强类型检查,所以不能和 php 一样去依赖强转检查
我们可以写成下面这样

// 检查是否为空字符串var fullName = '';assert(fullName.isEmpty);// 检查是否为 0var hitPoints = 0;assert(hitPoints <= 0);// 检查是否为 nullvar unicorn;assert(unicorn == null);// 检查是否为 NaNvar iMeantToDoThis = 0 / 0;assert(iMeantToDoThis.isNaN);

List 类型

几乎每种语言中最常见的集合可能是数组或有序的对象。在 dart 中,数组是 LIST 对象

定义

var list = [1,2,3];

使用

dart 的 LIST 索引从 0 开始

list[1] = 10;list.length; // 获取长度

Maps 类型

map 将 key 和 value 关联到一起,key 必须是唯一的

定义

// 第一种定义var gifts = {    // key     value    'first' :  'partridge',    'second':  'turtledoves'};// 第二种定义var gifts2 = new Map();gifts2['first'] = 'partridge';

使用

// 获取值gifts['first'];// 判断 key 是否存在assert(gifts['fifth'] == null);// 获取长度gifts.length;

Runes 类型

Dart 中 runes 是 UTF-32 字符集的 string 对象。

codeUnitAt 和 codeUnit 用来获取 UTF-16 字符集的字符。
使用runes 来获取 UTF-32 字符集的字符。

Runes input = new Runes(      '\u2665  \u{1f605}  \u{1f60e}  \u{1f47b}  \u{1f596}  \u{1f44d}');

学习资源

  1. 学习交流 QQ 群 (826912082)

转载地址:http://zxhal.baihongyu.com/

你可能感兴趣的文章
网络流——最大流问题例题
查看>>
数据恢复:模拟2个逻辑坏块
查看>>
SDUT 1124-飞跃荒野(三维BFS)
查看>>
wcf 请考虑增加操作超时
查看>>
【设计模式】简单工厂模式
查看>>
[LeetCode] Binary Tree Paths 二叉树路径
查看>>
对JAVA集合进行遍历删除时务必要用迭代器
查看>>
poj 2010 Moo University - Financial Aid(优先队列(最小堆)+ 贪心 + 枚举)
查看>>
统计多少个汉字与字母
查看>>
Odoo9发行说明
查看>>
logging日志管理--将日志打印在屏幕上
查看>>
PF_NETLINK应用实例NETLINK_KOBJECT_UEVENT具体实现--udev实现原理
查看>>
mongodb 3.x 之实用新功能窥看[2] ——使用$lookup做多表关联处理
查看>>
实际利率 > 名义利率
查看>>
第三篇:基于K-近邻分类算法的手写识别系统
查看>>
9.6智力题(一)——给定两条绳子,每条绳子燃烧殆尽正好用一个小时,用这两条绳子准确计时15分钟...
查看>>
启动redis
查看>>
Swift 互斥锁写法
查看>>
matlab中元胞数组的创建与内容读取
查看>>
P3390 【模板】矩阵快速幂
查看>>