纸月
发布于 2021-01-15 / 237 阅读
0
0

Dart语言入门——数据类型

内置类型

Dart内置了如下的几种数据类型:

  • 数值型-Number
  • 字符串-String
  • 布尔型-Boolean
  • 列表-List
  • 键值对-Map
  • Runes(不常见)
  • Symbols(不常见)

Number

Mumber(num) 包含两种子类型整型 int浮点型 double这两种子类型,只是数值范围和精度不同而已。int类型的值为整型,切取值范围为-2^532^53,而double采用的是IEEE 754标准

num操作
  • 运算符:+、-、*、/、~/、%加、减、乘、除、取整、取余

  • 常用属性:

    1. isNaN 如果数值是double的NaN值(Not a Number,非数。是计算机科学中数值数据类型的一类值,表示未定义或不可表示的值。常在浮点数运算中使用。详情见百度百科:https://baike.baidu.com/item/nan/7455322?fr=aladdin),返回true,否则为false。
    2. isEven 用来判断是否偶数
    3. isOdd 用来判断是否奇数
  • 常用方法:

    1. abs() 返回num的绝对值
    2. round() 四舍五入,返回最接近this的整数。
    3. floor() 向下取整,或者说向下舍入,返回不大于this的最大整数。
    4. ceil() 向上取整,或者说向上舍入,返回不小于this的最小整数。
    5. toInt() → int 将num截断成整数,结果作为int值返回。
    6. toDouble() 将num作为double值返回。

Strings(字符串)

Dart使用的是UTF-16字符集

  • 声明一个字符串可以使用单引号'',也可以使用双引号""
  • 使用${expression}语法可以将一个值动态插入到字符串中,如果需要插入的值简单表达式是一个标识符,无需计算的话可以省略{}
  • 创建多行字符串,可以使用'''语法,这会按照多行输出
String a = '''
   在这里可以创建
   像这样的多行字符串
  ''';
  • 可以直接写多行进行字符串拼接
String a = '字符1'
'字符2'
"字符3"  
// 输出 字符1字符2字符3
  • 还可以使用+进行字符串拼接
  • 不同数据类型的变量拼接只能是num,String,bool类型

字符串和数字之间的转化

1.字符串和数字转化

使用parse方法,可以经字符串转换为数字类型

var one = int.parse('111');
var two = double.parse('12.21');
print('${one} ${one.runtimeType}'); // 111 int
print('${two} ${two.runtimeType}'); // 12.21 double
2.数字转字符串
var num1 = 123;
var num2 = 123.456;
var num1Str = num1.toString();
var num2Str = num2.toString();
var num2StrD = num2.toStringAsFixed(2); // 保留两位小数(看资料和网上博主的blog好多人多说是四舍五入,实测下来是五舍六入,不清楚他们怎么得出来的四舍五入的)
print('${num1Str} ${num1Str.runtimeType}'); // 123  String
print('${num2Str} ${num2Str.runtimeType}'); // 123.456  String
print('${num2StrD} ${num2StrD.runtimeType}'); // 123.46 String

Boolean(布尔)

在Dart中提供了bool类型,取值为true和false 注意: Dart中不能判断非0即真, 或者非空即真

Dart的类型安全性意味着您不能使用if(非boolean值)或assert(非boolean值)之类的代码。

var message = 'Hello Dart';
  // 错误的写法
  if (message) {
    print(message)
  }

集合类型

对于集合类型,Dart内置了最常用的三种:List/Set/Map

List:

List在其他语言中,通常称为数组,也就是某一种特定类型的集合,在Dart中称为List List可以如下定义:

// 1.使用类型推导定义
var letters = ['a','b','c'];

// 2.明确指定类型
List<int> list = [1,2,3,4];
Set:

Set 是一个_元素唯一_的_无序数组_,不能够通过索引值去获取内容,它的主要功能是去除重复的数组内容 它其实就是特殊的数组,把[]换成{}即可

var s=new Set();
 s.add('香蕉');
 s.add('苹果');
 s.add('苹果');

 print(s);   //{香蕉, 苹果}

 print(s.toList()); //[香蕉, 苹果]


  List myList=['香蕉','苹果','西瓜','香蕉','苹果','香蕉','苹果'];

  var s=new Set();

  s.addAll(myList);

  print(s);//{香蕉, 苹果, 西瓜}

  print(s.toList());//[香蕉, 苹果, 西瓜]
Map

Map是我们常说的字典类型

  • 常用属性:
    keys            获取所有的key值
    values          获取所有的value值
    isEmpty         是否为空
    isNotEmpty      是否不为空
  • 常用方法:
    remove(key)     删除指定key的数据
    addAll({...})   合并映射  给映射内增加属性
    containsValue   查看映射内的值  返回true/false
    forEach   
    map
    where
    any
    every

评论