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; 明确类型
相关推荐
人生游戏牛马NPC1号2 小时前
学习 Flutter (三):玩安卓项目实战 - 上
android·学习·flutter
断剑重铸之日9 小时前
Flutter 滑动面板组件(修复版)
flutter·性能优化
钟智强10 小时前
Flutter 前端开发中的常见问题全面解析
android·前端·flutter·ios·前端框架·dart
MaoJiu18 小时前
Flutter中的CustomSingleChildLayout: 掌握自定义单子组件布局
flutter
ZhDan911 天前
flutter知识点
flutter
xchenhao1 天前
基于 Flutter 的开源文本 TTS 朗读器(支持 Windows/macOS/Android)
android·windows·flutter·macos·openai·tts·朗读器
coder_pig1 天前
跟🤡杰哥一起学Flutter (三十五、玩转Flutter滑动机制📱)
android·flutter·harmonyos
MaoJiu1 天前
Flutter与原生端的通信
flutter·ios