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();

比较 var 、dynamic、Object

  • 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

assert 与Objective-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; 明确类型
相关推荐
传奇开心果编程2 小时前
【现代声明式UI学与练】第1课 从命令式UI到声明式UI
学习·flutter·ui·swiftui·react·android jetpack
m0_738185826 小时前
Flutter 鸿蒙化实战:flutter_nfc_kit 适配 OpenHarmony,NFC 读写一步到位
flutter·华为·harmonyos·鸿蒙
恋猫de小郭6 小时前
KMP 又改了编译流程, Separate Compilation 禁止了 `commonMain` 的依赖穿透
android·前端·flutter
m0_738185827 小时前
Flutter 鸿蒙化实战:flutter_quill 适配 OpenHarmony,富文本编辑器
flutter·华为·harmonyos·鸿蒙
m0_738185827 小时前
Flutter 鸿蒙化实战:flutter_quick_video_encoder 适配 OpenHarmony,逐帧编码视频
flutter·华为·音视频·harmonyos·鸿蒙
blanks20201 天前
如何查看 drift 在 本机的 sqlite 文件路径
flutter
m0_738185821 天前
Flutter 鸿蒙化实战:flutter_iot_wifi 适配 OpenHarmony,IoT 设备 WiFi 配网
物联网·flutter·华为·harmonyos·鸿蒙
律宏阔2 天前
Flutter Riverpod 3:统一打印 Provider 错误与自动重试日志
前端·flutter
m0_738185822 天前
Flutter 鸿蒙化实战:flutter_exif_plugin 适配 OpenHarmony,图片 EXIF 读写
flutter·华为·harmonyos·鸿蒙