面向Kotlin与Java开发者的Dart快速入门(二) 内置类型

在这里插入图片描述

数值


数值类型包括整形int, BigInt,以及浮点型doubleint是64bit的,超出这个范围使用Bigint
数值类型的字面值在编译期可以确定,所以使用const声明数值常量。

const A = 3;
const B = 9;
const C = A * B;

字符串


var str = "可以使用双引号字符串";
var str = '也可以向JS一样使用单引号字符串'
var str = "字符串可以" + "通过运算符链接";
var str = "像Kotlin一样 $exprName 使用字符串模板参数";
var str = """
	像kotlin一样,
	三个双引号或者单引号内的文字可以随意换行
	也无需转义
""";
var str = '相邻字符串 '
    '不使用加号'
    " 也会连接成一个字符串";

布尔型


bool表示布尔型,就像Java的Boolean,但是如前所述bool的默认值是null,需在初始化时显式的设置初值


List


Dart中没有Array只有List,Java中经常会纠结于Array与List的选择,不让用户做选择才是好产品。
List的API与Java很相近,但是Dart允许List像Array或者Kotlin的listOf一样使用字面值创建

// list的类型为List<Int>
final list = [1, 3, 5, 7, 9];

print(list[1]);    // 3

Dart2.3开始,加入了spread操作符进行list的展开,spread借鉴了ES6的三点语法

final listA = [1, 2, 3, 4];
final listB = [...listA, 5, 6, 7, 8, 9];

print(listB);    // [1, 2, 3, 4, 5, 6, 7, 8, 9]

Dart2.3还加入Collection-If功能,在list内可以写条件表达式;

final list = [
    if (true) 1,
    if (false) 2,
    3
];

print(list);    // [1, 3]

以及Collection-For功能,list内写循环表达式

final listA = [1, 2, 3, 4];
final listB = [
    for (var a in listA) a * 2,
];

print(listB);    // [2, 4, 6, 8]

Map


Dart的Map的API与Java的几乎一样,但是允许字面值创建Map

var map = {
    1"壹",
    2"贰",   // 允许尾逗号的存在,据说Kotlin 1.4 中也准备支持尾逗号
};

print(map[1]);   // "壹"
print(map[3]);   // null

Set


API几乎与Java的一样,同样可以字面值创建

final s = {1, 2, 1, 2, 1, 2};

print(s);    // {1, 2}

符号文字(Rune)


Rune是UTF-32编码的字符串。它可以通过文字转换成符号表情或者代表特定的文字。

var clapping = '\u{1f44f}';
print(clapping);   // 👏

Java中没有专用的Rune类型,通过\uXXXX的String表示Unicode字符,例如

String s = "\u00X1";

符号(Symbol)


Symbol可以看作C中的宏,表示编译时的一个常量,使用#后跟一个标识符表示。
在Java和Kotlin中没有对应的类型,在ruby中倒是有Symbol类型的存在。

main() {
  print(i);
  switch(i){
    case #A:  ///#A是一个Symbol
      print("A");
      break;
    case #B:
      print("B");
      break;
  }

  var b = new Symbol("b");
  print(#b == b); ///#b是一个Symbol

}

SymbolRune虽然在Java和Kotlin中不存在对应的类型,但在使用中也比较少,所以不会成为学习Dart的障碍。



返回首页:Dart入门教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fundroid

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值