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; 明确类型
相关推荐
国医中兴44 分钟前
Flutter 三方库 ngrouter 鸿蒙适配指南 - 实现高性能扁平化路由导航管理实战
flutter·harmonyos·鸿蒙·openharmony
lpftobetheone1 小时前
【Flutter】如何理解Dart语言的Isolate API
flutter
国医中兴2 小时前
Flutter 三方库 inject_generator 的鸿蒙化适配指南 - 自动化依赖注入注入生成器、驱动鸿蒙大型工程解耦实战
flutter·harmonyos·鸿蒙·openharmony·inject_generator
chdo2 小时前
从需求到实现:Flutter可变宽度滑动器的探索之路
flutter
国医中兴3 小时前
Flutter 三方库 themed_color_palette 的鸿蒙化适配指南 - 定义语义化调色板、在鸿蒙端实现像素级的主题切换实战
flutter·harmonyos·鸿蒙·openharmony·themed_color_palette
不爱吃糖的程序媛3 小时前
2026 年如何上车 Flutter-OH:环境搭建与上手流程
flutter
国医中兴4 小时前
Flutter 三方库 aws_sqs_api 鸿蒙适配指南 - 实现分布式消息异步解耦、在 OpenHarmony 上打造高可用云端队列控制中枢实战
flutter·harmonyos·aws
国医中兴4 小时前
Flutter 三方库 toggleable 鸿蒙适配指南 - 实现声明式状态切换逻辑、在 OpenHarmony 上打造极简交互组件引擎实战
flutter·交互·harmonyos
国医中兴4 小时前
Flutter 三方库 schedules 的鸿蒙化适配指南 - 玩转复杂时间调度算法、构建高效的鸿蒙办公协作系统实战
flutter·harmonyos·鸿蒙·openharmony
ITKEY_4 小时前
flutter打包ipad 并上传Appstore
flutter·ios·ipad