Dart语言:数据类型

Posted 考拉的日常

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dart语言:数据类型相关的知识,希望对你有一定的参考价值。

Dart 内置支持的类型

  • numbers

  • strings

  • booleans(布尔值)

  • lists (也被称之为 arrays)

  • maps

  • runes (用于在字符串中表示 Unicode 字符)

  • symbols


num

num分为int整型,double浮点型,int 和 double 都是 num 的子类。
  num a = 10// num可以赋值整型  a = 12.5; // num也可赋值浮点型    int b = 20;  //b = 20.4; //error int类型不能在赋值其他类型   /** */ double c = 20.4;  c = 10;  //自动转为浮点型 print(c); // 10.0

String

  String  s1 = 'Hello World'; // ''' 三引号 多行字符串 String s3 = '''Hello World my name is jack  '''; String s4 = r'Hello \n World'; // 原始raw字符串 特殊符号会转义   // 字符串操作  +  *  ==  [] String s5 = 'This is my first Dart demo!'; print(s5 + 'new'); //This is my first Dart demo!new 连接字符串 print(s5 * 2); //This is my first Dart demo!This is my first Dart demo! 运算 print(s5 == s3); //false 判断 print(s5[3]); //s 通过下标取字符串  //插值表达式 int a = 1; int b = 2; print("a + b ${a + b}"); //a + b 3  //常用属性 print(s4.length);//取长度 print(s4.isNotEmpty);//判断是否为空

>字符串常用方法

   contains()  subString()
   statsWith()  endsWith()
   indexOf()  lastIndexOf()
   toLowerCase()  toUpperCase()
   trim()   trimLeft()  trimRight()
   split()  replaceXXX()


bool 布尔值

只有 true 对象才被认为是 true。 所有其他的值都是 flase。 这点和 javascript 不一样, 像 1、 "aString"、 以及 someObject 等值都被认为是 false。
  bool isTrue = true



list

数组/list是同一个概念
 var list = [1,2,3,'Dart',false]; print(list); //[1, 2, 3, Dart, false] print(list[1]); //2 list[1] = 'Hello'; // [1, Hello, 3, Dart, false] print(list); //[1, 2, 3, Dart, false] var list1 = const [1,2,3];//不可变list //list1[0] = 5; //error print(list1); var list2 = new List(); //构造创建

>list常用属性方法  

[]  length
add() inset() 添加元素
remove() 删除元素  clear()清空元素
indexOf()  lastIndexOf() 获取元素位置
sort()排序  sublist()获取子list
shuffle()打乱  asMap()转换为Map forEach()循环

Map 键值对

Map 是一个键值对相关的对象。键和值可以是任何类型的对象。每个 键 只出现一次, 而一个值则可以出现多次。Dart 通过 map 字面量 和 Map 类型支持 map。
void main() { Map: var map1 = {'first': 'dart', 1: true, true: 2}; print(map1); print(map1['first']); //dart print(map1[true]); //2 map1[1] = false; print(map1[1]); //false
var map2 = const {'first': 'chinese', 'two': 'japanese'};  //map2['first'] = '哈哈'; //error
var map3 = {'one': "1", "two": "2", bool: true}; print(map3); map3.remove('one'); print(map3); map3.forEach(f);}void f(key,v){ print("key=$key,value=$v");}

>Map 常用属性方法

[] length
isEmpty() isNotEmpty()
Keys()获取所有键  values()获取所有值
containKeys()是否包含某个key  containsValue()是否包含某个值
remove() 删除某个元素
forEach() 循环

dynamic 动态类型

 // dynamic动态类型 var a; a = 10; a = 'Dart';
dynamic b = 10; b = 'aaa';
var list = new List<dynamic>(); list.add(1); list.add('HAHA'); list.add(true); print(list);


在学习 Dart 的时候,请牢记下面一些事实和概念:

  • 所有能够使用变量引用的都是对象, 每个对象都是一个的实例。在 Dart 中 甚至连 数字、方法和 null 都是对象。所有的对象都继承于 Object 类。

  • 使用静态类型(例如前面示例中的 num ) 可以更清晰的表明你的意图,并且可以让静态分析工具来分析你的代码, 但这并不是强制性的。(在调试代码的时候你可能注意到 没有指定类型的变量的类型为 dynamic

  • Dart 在运行之前会先解析你的代码。你可以通过使用 类型或者编译时常量来帮助 Dart 去捕获异常以及 让代码运行的更高效。

  • Dart 支持顶级方法 (例如 main()),同时还支持在类中定义函数。(静态函数和实例函数)。你还可以在方法中定义方法 (嵌套方法或者局部方法)。

  • 同样,Dart 还支持顶级变量,以及 在类中定义变量(静态变量和实例变量)。实例变量有时候被称之为域(Fields)或者属性(Properties)。

  • 和 Java 不同的是,Dart 没有 public、 protected、 和 private 关键字。如果一个标识符以 (_) 开头,则该标识符 在库内是私有的。详情请参考: 库和可见性

  • 标识符可以以字母或者 _ 下划线开头,后面可以是 其他字符和数字的组合。

  • 有时候 表达式 expression 和 语句 statement 是有区别的,所以这种情况我们会分别指明每种情况。

  • Dart 工具可以指出两种问题:警告和错误。警告只是说你的代码可能有问题, 但是并不会阻止你的代码执行。错误可以是编译时错误也可以是运行时错误。遇到编译时错误时,代码将 无法执行;运行时错误将会在运行代码的时候导致一个 异常


以上是关于Dart语言:数据类型的主要内容,如果未能解决你的问题,请参考以下文章

Dart语言:数据类型

Dart入门语言特性库异步编程

Dart语言入门

Dart语言入门

30分钟掌握Dart语言

Dart语法学习-数据类型