Flutter ☞ 变量

Flutter中,变量分为两种类型

  • 弱类型
  • 强类型

弱类型

var

如果没有初始值,可以变成任何类型

kotlin 复制代码
var a;
// var a = ''; // 一旦赋值,就确定类型,不能随意改动
a = 'abc';
a = 123;
a = true;
a = {'key': '123'};
a = ['abc'];

print(a)

Object

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

kotlin 复制代码
Object a = '123';
a = 123;
a = [2222];
a.p();

dynamic

动态任意类型,编译接点不检查类型

kotlin 复制代码
dynamic a = '123';
a = 123;
a = [1111];
a.p();

比较 vardynamicObject

  • var 如果有初始值,则类型会被锁定

强类型

声明类型

类型声明后,类型会被锁定

kotlin 复制代码
String a;
a = '123';
a = 123

常见类型

名称 说明
num 数字
double 浮点
bool 布尔
String 字符串
StringBuffer 字符串 Buffer
DateTime 时间日期
Duration 时间区间
List 数组
Sets 集合
Maps key-value容器
enum 枚举
kotlin 复制代码
String a = "123";
int i = 123;
double d = 0.12;
bool b = true;
DateTime dt = DateTime.now();
List l = [1, 2, 3, 4];

默认值

变量声明后未确定值的,默认都是 null

kotlin 复制代码
var a;
String a;
print(a);
assert(a == null)
assert

assertObjective-C中的函数相同,检查点函数,如果不符合条件直接抛出错误并中止程序进程。只在 Debug 模式下生效。

使用场景

var 简化定义变量

不用明确变量类型

kotlin 复制代码
var map = <String, dynamic>{};
map['image'] = image;
map['title'] = title;
map['desc'] = desc;
  • 如果不使用 var ,就要写成 Map<String, dynamic>

查询参数定义

api 查询通用接口封装的时候,我们一般用动态类型。

如一个 api 请求

kotlin 复制代码
Future<Response<T>> get<T>(
	String path, {
	Map<String, dynamic>? queryParameters,
	...
})
  • Map<String, dynamic>? queryParameters 查询参数值是动态

返回的实例对象

如分类实例定义

kotlin 复制代码
class Category {
	int id; // 数字 id
	String name; // 字符串 分类名称
	String slug;
	Category({this.id, this.name, this.slug});
	...
}
  • int id; String name; 明确类型
相关推荐
恋猫de小郭3 小时前
Flutter Riverpod 3.0 发布,大规模重构下的全新状态管理框架
android·前端·flutter
RaidenLiu4 小时前
Riverpod 3:重建控制的实践与性能优化指南
前端·flutter
蒋星熠21 小时前
Flutter跨平台工程实践与原理透视:从渲染引擎到高质产物
开发语言·python·算法·flutter·设计模式·性能优化·硬件工程
卢叁1 天前
Flutter之自定义TabIndicator
前端·flutter
萧雾宇1 天前
Android Compose打造仿现实逼真的烟花特效
android·flutter·kotlin
拜无忧1 天前
【教程】flutter常用知识点总结-针对小白
android·flutter·android studio
拜无忧1 天前
【教程】Flutter 高性能项目架构创建指南:从入门到高性能架构
android·flutter·android studio
醉过才知酒浓1 天前
flutter 拦截返回按钮的方法(WillPopScope or PopScope)
flutter
傅里叶1 天前
sudo启动Flutter程序AMD初始化失败
linux·flutter
苦逼的搬砖工1 天前
Flutter UI Components:闲来无事,设计整理了这几年来使用的UI组件库
前端·flutter