【Flutter 学习笔记二】Dart 的基础概念和数据类型

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

dart 这个语言仍是比较奇怪的,以前根本没听过(多是我孤陋寡闻了),听说有人问 flutter 开发者,为何使用 dart 语言。开发者回答说:"dart 开发组就在咱们隔壁,因此咱们决定使用 dart" 😭数组

不过不要紧,全部的语言思想都差很少,有经验的入门仍是比较简单的。开始进入正题吧~ide

关于后面 dart ,代码能够在 dartPad 上运行函数

https://dartpad.dartlang.org/学习

基本概念

  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 内置了几种常见的数据类型ui

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

number 类型

number 类型分为 int 和 double code

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);

// 检查是否为 0
var hitPoints = 0;
assert(hitPoints <= 0);

// 检查是否为 null
var unicorn;
assert(unicorn == null);

// 检查是否为 NaN
var 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. A Tour of the Dart Language
  2. https://www.jianshu.com/p/b21...
  3. 学习交流 QQ 群 (826912082)
相关文章
相关标签/搜索