02Dart 数据类型

本篇从大地老师《Dart 入门实战教程》学习整理而来。

Numbers(数值)

  • int/double
//1、int   必须是整型
int a=123;
a=45;
print(a);

//2、double  既可以是整型 也可是浮点型
double b=23.5;
b=24;
print(b);

//3、运算符
// + - * / %
var c=a+b;
print(c);

Strings(字符串)

  • String
// 定义字符的几种方式

// 1.var 关键字定义
var str1='this is str1';

// 2.类型符号定义
String str1='this is str1';

// 3.定义多行字符串 '''或"""
String str1='''this is str1
this is str1
this is str1''';

// 字符串的拼接
String str1='你好';
String str2='Dart';
print("$str1 $str2");
print(str1 + str2);

Booleans(布尔)

  • true/false
var a = 123;
var b = 123;

if (a == b) {
  print('a=b');
} else {
  print('a!=b');
}

List(数组)

  • 在Dart中,数组是列表对象,所以大多数人只是称它们为列表
// 1、第一种定义List的方式
var l1=["张三",20,true];

// 2、第二种定义List的方式 指定类型
var l2=<String>["张三","李四"];
var l3 = <int>[12, 30];

// 3、第三种定义List的方式  增加数据 ,通过[]创建的集合它的容量可以变化
var l4 = [];
l4.add("张三");

// 4、通过List.filled创建的集合长度是固定
var l5=List.filled(2, "");
print(l6.length);
l6.length=0;  //修改集合的长度   报错

List l6 = List<String>.filled(2, "");

Maps(字典)

  • 通常来说,Map 是一个键值对相关的对象。 键和值可以是任何类型的对象。每个 键 只出现一次, 而一个值则可以出现多次
//第一种定义 Maps的方式
var person = {
  "name": "张三",
  "age": 20,
  "work": ["程序员", "送外卖"]
};

//第二种定义 Maps的方式
var p = new Map();
p["name"] = "李四";
p["age"] = 22;
p["work"] = ["程序员", "送外卖"];

Runes

  • Rune是UTF-32编码的字符串。它可以通过文字转换成符号表情或者代表特定的文字。
main() {
  var clapping = '\u{1f44f}';
  print(clapping);
  print(clapping.codeUnits);
  print(clapping.runes.toList());

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

Symbols

  • Symbol对象表示在Dart程序中声明的运算符或标识符。您可能永远不需要使用符号,但它们对于按名称引用标识符的API非常有用,因为缩小会更改标识符名称而不会更改标识符符号。要获取标识符的符号,请使用符号文字,它只是#后跟标识符:

类型推断

  • 使用 is 关键字实现类型推断
var str = 123;

if (str is String) {
  print('是string类型');
} else if (str is int) {
  print('int');
} else {
  print('其他类型');
}
原文地址:https://www.cnblogs.com/johu/p/15694735.html