免费网站申请域名com,企业展厅策划方案,十六局集团门户网,百度pc端网页版在Flutter中#xff0c;变量分为两种类型
弱类型强类型
弱类型
var
如果没有初始值#xff0c;可以变成任何类型
var a;
// var a ; // 一旦赋值#xff0c;就确定类型#xff0c;不能随意改动
a abc;
a 123;
a true;
a {key: 123};
a [abc];print(a)Object
动…在Flutter中变量分为两种类型
弱类型强类型
弱类型
var
如果没有初始值可以变成任何类型
var a;
// var a ; // 一旦赋值就确定类型不能随意改动
a abc;
a 123;
a true;
a {key: 123};
a [abc];print(a)Object
动态任意类型 编译阶段检查类型
Object a 123;
a 123;
a [2222];
a.p();dynamic
动态任意类型编译接点不检查类型
dynamic a 123;
a 123;
a [1111];
a.p();比较 var 、dynamic、Object
var 如果有初始值则类型会被锁定
强类型
声明类型
类型声明后类型会被锁定
String a;
a 123;
a 123常见类型
名称说明num数字double浮点bool布尔String字符串StringBuffer字符串 BufferDateTime时间日期Duration时间区间List数组Sets集合Mapskey-value容器enum枚举
String a 123;
int i 123;
double d 0.12;
bool b true;
DateTime dt DateTime.now();
List l [1, 2, 3, 4];默认值
变量声明后未确定值的默认都是 null
var a;
String a;
print(a);
assert(a null)assert
assert 与Objective-C中的函数相同检查点函数如果不符合条件直接抛出错误并中止程序进程。只在 Debug 模式下生效。
使用场景
var 简化定义变量
不用明确变量类型
var map String, dynamic{};
map[image] image;
map[title] title;
map[desc] desc;如果不使用 var 就要写成 MapString, dynamic
查询参数定义
api 查询通用接口封装的时候我们一般用动态类型。
如一个 api 请求
FutureResponseT getT(String path, {MapString, dynamic? queryParameters,...
})MapString, dynamic? queryParameters 查询参数值是动态
返回的实例对象
如分类实例定义
class Category {int id; // 数字 idString name; // 字符串 分类名称String slug;Category({this.id, this.name, this.slug});...
}int id; String name; 明确类型