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; 明确类型
相关推荐
ALLIN15 小时前
Flutter 三种方式实现页面切换后保持原页面状态
flutter
Dabei15 小时前
Flutter 国际化
flutter
Dabei15 小时前
Flutter MQTT 通信文档
flutter
Dabei19 小时前
Flutter 中实现 TCP 通信
flutter
孤鸿玉19 小时前
ios flutter_echarts 不在当前屏幕 白屏修复
flutter
前端 贾公子20 小时前
《Vuejs设计与实现》第 16 章(解析器) 上
vue.js·flutter·ios
tangweiguo030519871 天前
Flutter 数据存储的四种核心方式 · 从 SharedPreferences 到 SQLite:Flutter 数据持久化终极整理
flutter
0wioiw01 天前
Flutter基础(②④事件回调与交互处理)
flutter
肥肥呀呀呀1 天前
flutter配置Android gradle kts 8.0 的打包名称
android·flutter
吴Wu涛涛涛涛涛Tao1 天前
Flutter 实现「可拖拽评论面板 + 回复输入框 + @高亮」的完整方案
android·flutter·ios