美文网首页
Dart(三)数据类型

Dart(三)数据类型

作者: 书写不简单 | 来源:发表于2018-12-28 17:31 被阅读0次

数据类型

Dart中支持以下数据类型:

  • Numbers
  • Strings
  • Booleans
  • List(数组)
  • Maps(字典)

Number 类型

  • int
  • double

以上两种类型都是number的子类,可以参与+ - * /等运算:

// 数值类型
  num a = 10;
  a = 11.344;

  int b = 90;

  double c = 88.00;

  print(a+b);
  print(a*b);
  print(b+c);
  print(c/b);

输出:

Launching lib/hello_word.dart on iPhone XR in debug mode...
Xcode build done.                                            4.1s
flutter: 101.344
flutter: 1020.9599999999999
flutter: 178.0
flutter: 0.9777777777777777

Strings类型

Dart字符串是UTF-16编码单元的序列。可以使用单引号或双引号创建一个字符串

// 字符串
  // 变量
  var str1 = 'ok?';
  String str2 = "It's ok?"; // 类型声明
  // 如果使用双引号,可以内嵌单引号,反过来也是一样。这点与Python一样
  str2 = "My name is dawang!";

  // 如果想输入多行字符串怎么办? 可以使用三个,三个,三个单引号 或者 双引号
  var str3 = """大王叫我来巡山
  路口遇见了如来
  """;
  print(str3);

  //在Dart中,相邻的字符串在编译的时候会自动连接
  //这里发现一个问题,如果多个字符串相邻,中间的字符串不能为空,否则报错
  //但是如果单引号和双引号相邻,即使是空值也不会报错,但相信没有人这么做
  var name = 'da''wang';
  print(name); // dawang
  name = 'da'' ''wang';
  print(name); // da wang

   // 连接两个字符串可以使用 :直接相邻 :+号运算符
   print(str2+str3);
   // My name is dawang!大王叫我来巡山
   //路口遇见了如来


  //assert 是语言内置的断言函数,仅在检查模式下有效
  //如果断言失败则程序立刻终止
  // assert(name == "sun wukong");

  //声明原始字符串,直接在字符串前加字符“r”
  //可以避免“\”的转义作用,在正则表达式里特别有用
  print(r"换行符:\n");

  //上面提到的字符串插值,还可以插入表达式:${}
  // print("整型转换为16进制:$hex —> 0x${hex.toRadixString(16).toUpperCase()}")

字符串操作

  • 运算符:+、*、==、[]

  • 插值表达式:${expression} 直接获取 expression 的值

  • 常用属性:

length、isEmpty、isNotEmpty  
  • 常用方法:
contains(),subString();startsWith(),endsWith();indexOf(),lastIndexOf();
       
toLowerCase(),toUpperCase();

trim(),trimLeft(),trimRight();// 修剪

split() // 切割字符串 

replaceXXX();

Number与String类型之间的转换

// string -> int
 var one = int.parse('1');
 print(one);

 // string -> double
 var two = double.parse('22.33');
 print(two);

 // 也可以使用下面的方式
 String three = '33.44'.toString();
 print(three);

// int -> String
String oneAsString = 1.toString();

// double -> String
String piAsString = 3.14159.toStringAsFixed(2);

Booleans类型

为了表示布尔值,Dart使用了一种名为bool的类型。只有两个对象具有bool类型:布尔字面值true和false,它们都是编译时常量。

使用 bool 表示布尔类型
 
 布尔值只有true和false
 
  bool isTrue=true;
  bool isFalse=false;

List 类型

在几乎所有编程语言中,最常见的集合可能是数组或有序对象组。在Dart中,数组是列表对象,所以大多数人只是称它们为列表。例子

var list = [1, 2, 3];

注意:
分析器推断List的类型List<int>。如果您试图向这个List添加非整数对象,分析器或运行时将引发错误。
Lists使用从0开始的索引,其中0是第一个元素和List的索引。list.length - 1是最后一个元素的指数。
操作数据的元素和OC 、Python 都一样。

要创建一个编译时常量的List,在[]前面添加const:

var constantList = const [1, 2, 3];
// constantList[1] = 1; // 这样赋值将报错

List常用

  • 创建List:var list=[1,2,3];

  • 创建不可变的List:var list=const[1,2,3];

  • 构造创建:var list =new List();

  • 常用操作:
[],length;add(),insert();remove(),clear();indexOf(),lastIndexOf();

      sort(),sublist();shuffle(),asMap(),forEach();

Map类型(映射)

通常,映射是关联键和值的对象。键和值可以是任何类型的对象。每个键只出现一次,但是您可以多次使用相同的值。Dart提供支持由maps文字和map类型。
这里有几个简单的Map,创建使用map文字:

var gifts = {
  // Key:    Value
  'first': 'partridge',
  'second': 'turtledoves',
  'fifth': 'golden rings'
};

var nobleGases = {
  2: 'helium',
  10: 'neon',
  18: 'argon',
};

您还可以使用以下方式创建Map对象:

var mapobject = Map();
mapobject['title'] = 'da';
mapobject['name'] = 'wang';
print(mapobject);

您可能会用到new Map(),而不仅仅是Map()。在Dart 2中,new是可选的。

向现有的Map添加一个新的键值对:

mapobject['address'] = '浙江商业银行';

从Map中检索值的方法:

mapobject['address'] == '上海外滩';

如果您查找的键不在Map中,则返回null

使用.length获得映射中键值对的数量:

print(mapobject.length);
  • 注意 注意
    要创建一个编译时常量的Map,在{}前添加const:
final constantMap = const {
  2: 'helium',
  10: 'neon',
  18: 'argon',
};

map的用法可以参考官网:https://www.dartlang.org/guides/libraries/library-tour#maps

相关文章

  • Dart语言基础(二)之数据类型

    Dart语言之数据类型 数据类型 dart语言数据类型包含一下类型:变量-Var常量-Const数值型-Numbe...

  • Dart数据类型

    Dart中支持以下数据类型: Dart数据类型: Numbers数值类型intdouble 字符串类型 Strin...

  • Dart(三)数据类型

    数据类型 Dart中支持以下数据类型: Numbers Strings Booleans List(数组) Map...

  • Dart《三》数据类型

    字符串类型 布尔类型 ${} 连接 字典:Map,键值对 神奇的简写:下面两个居然是等价的

  • Dart基础语法

    Dart基础语法 基本数据类型 Dart 属于强类型语言(在Dart2.0之前,Dart是一门弱类型语言。2.0以...

  • Dart 2 (二) 数据类型

    数据类型 Dart中支持以下数据类型: Numbers Strings Booleans List(数组) Map...

  • Flutter之旅:Dart的基础语法

    1.Dart中常见数据类型一览: 总的来看Dart的常见的数据类型有下面8种: 1.1.数字类型 num、int和...

  • 【Dart】Dart 数据类型

    数据类型 下一节 数据类型学习地址[https://www.bilibili.com/video/BV1rN411...

  • Flutter中Dart基础

    Flutter是基于Dart语音开发的,Dart是面向对象的语言,下面记录一些Dart语言常用数据类型的用法。 1...

  • Dart语言(二)内置的数据类型

    Dart语言(二)内置的数据类型 Dart内置支持下面这些类型: numbers 数字 strings 字符串 ...

网友评论

      本文标题:Dart(三)数据类型

      本文链接:https://www.haomeiwen.com/subject/ybqelqtx.html