0
点赞
收藏
分享

微信扫一扫

Dart 基础类型详解


成功的秘诀就在于多努力一次。为了成功,你努力了多少次?


Dart 基础类型详解

基础类型

1. 数字类型

int 类型

    整数值不大于64位, 具体取决于平台

int age = 20; // 定义一个 int 类型的变量 age

double 类型

    64位双精度浮点数,Dart 只有 double是双精度的,不像 Java 还有 float 单精度类型

double money = 5.2; // 定义一个金额 5.2

2. 字符串类型

String

    Dart 字符串是通过单引号或者双引号创建,Java 语言中定义字符串的时候是必须用双引号的,使用连续三个单引号或者三个双引号实现多行字符串对象的创建

String name = "zhangsan"; // 定义一个字符串类型的名字 zhangsan 双引号定义
String name_1 = 'lisi'; // 定义一个字符串类型的名字 lisi 单引号定义
// 多行定义字符串
String name_2 = """
我是张三
今年23
""";
字符串拼接

    可以使用 + 运算符来把多个字符串连接为一个

String str_1 = "我是张三"+"今年23";

3. 布尔类型

Boolean

    Dart 使用 bool 类型表示布尔值。 Dart 只有字面量 true 和false 是布尔类型, 这两个对象都是编译时常量,Dart 这个语言没有像JavaScript 那样,0是false,1是true,或者非零即真

4. 集合

List

    几乎每种编程语言中最常见的集合可能是 array 或有序的对象集合。 在 Dart 中的 Array 就是 List 对象, 通常称之为 List,Dart 中的 List 字面量非常像 JavaScript 中的 array 字面量,不过这种数据类型大差不差的,都是第一个元素索引从0开始,最后一个元素的索引是list.length-1,定义语法符号是[]。

List<int> lists = [1,2,3]; // 定义一个整型数据集合,这里面还有泛型的事情【后续会将】
添加
lists.add(4); // 添加单个元素
lists.add([5,6]); // 添加多个元素
获取长度
lists.length; // 6
移除元素
lists.removeAt(索引值);// 根据索引值进行元素移除
清除集合
lists.clear();
获取元素下标
lists.indexOf(元素值); // 根据元素值获取索引值

5. 去重集合

Set

    在 Dart 中 Set 是一个元素唯一且无需的集合。 Dart 为 Set 提供了Set 类型,这个Set 集合是可去重的集合,里面没有重复的元素,它和List定义的时候不同它是{},而List是[]

// 定义一个Set<String>类型的集合Set
Set<String> halogens = {'李念', '哈哈', '真的么'};
Set<String> sets = {}; // 定义一个空的Set集合
添加元素

    当然了添加已存在的值是不好用的

halogens.add("假的");
移除元素
halogens.remove('李念');// 移除一个值
是否包含
halogens.contains("李念");// 是否包含该值

5. 映射

Map

    通常来说, Map 是用来关联 keys 和 values 的对象。 keys 和 values 可以是任何类型的对象。在一个 Map 对象中一个 key 只能出现一次。 但是 value 可以出现多次,这种方式理论上和JAVA是一样的,key是唯一值

var persons = new Map(); // 定义一个Person类型的映射,[new 是可选的]
persons['first'] = '张三';
persons['second'] = '李四';
persons['fifth'] = '王二麻子';
添加
persons['third'] = '哈哈'; // third是key,'哈哈'是value
获取值
persons['third'];// 通过key进行获取
是否包含key
persons.containsKey('third');// 查看集合中是否包含'third' key

变量定义

var 定义

    变量仅存储对象引用,这里的变量是 name 存储了一个 String 类型的对象引用,变量的类型被推断为 String,Dart 语言是有类型推断的,这种其实和Rust语言挺像的

var name = "张三";

显示类型定义

    就是在定义变量的时候直接声明变量的类型,直接将name定义为 String 类型

String name = "张三";

动态类型定义

    动态类型定义是利用关键字 dynamic

dynamic name = "张三";

默认值

    未初始化的变量默认值是 null。即使变量是数字类型默认值也是 null,因为在 Dart 中一切都是对象,数字类型也不例外

关键字

使用过程中从来不会被修改的变量, 可以使用 final 或 const, 而不是 var 或者其他类型, Final 变量的值只能被设置一次,const 变量在编译时就已经固定,最高级 final 变量或类变量在第一次使用时被初始化

Final

定义一个字符串类型的变量,这种类型是不能被改变的,只能被设置一次

final String nickname = '张三';

Const

    如果需要在编译时就固定变量的值,可以使用 const类型变量。 如果 const 变量是类级别的,需要标记为 static const

const double pi = 3.14; // Π 这个变量是固定值可以设置为 const 的

小结

    其实一看 Dart 的基础数据类型,以及 finalconst 等这些特性和java都是特别像的,和JS也有相似处,所以这门语言真的是结合百家之长,不过这个类型推断还是挺方便的,定义变量用 var 就行,创建对象的时候可以省略 new 关键字等等

举报

相关推荐

0 条评论