Dart 中变量类型 var, Object, dynamic 区别

时间:2022-07-24
本文章向大家介绍Dart 中变量类型 var, Object, dynamic 区别,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

0 前言

Dart 中弱类型有var, Object 以及dynamic,本文主要探讨一下这三者的区别

1 var

  1. 如果没有初始值,可以变成任何类型
var a;
a = 'ducafecat';
a = 123;
a = true;
a = {'key': 'val123'};
a = ['abc'];
  1. 如果有初始值,那么其类型将会被锁定,例如下面语句将会报错
var a = 'ducafecat';
a = 123;

2 Object

动态任意类型,编译阶段检查类型

Object a = 'doucafecat';
a = 123;
a = [2222];

3 dynamic

动态任意类型,编译阶段不检查类型

dynamic a = 'doucafecat';
a = 123;
a = [1111];

3 总结

  1. var 初始化确定类型后不可更改类型, Object 以及dynamic 可以更改类型
  2. Object 编译阶段检查类型, 而 dynamic 编译阶段不检查类型