Flutter中有趣的级联语法

server/2024/11/14 17:46:52/

目录

前言

一、基本语法

二、级联语法的优点

三、使用场景

1.初始化对象的多个属性

2.Widget 链式构建

3.调用多个方法

4.链式操作异步请求


前言

        在 Flutter(Dart)中,级联操作符(cascade notation) 使用两个点 .. 表示,可以让你在对象上连续调用多个方法或设置多个属性,而不需要在每一步都重复对象的名字。这种语法在链式调用和构建复杂对象时非常有用。

一、基本语法

        级联操作符是通过在对象后添加 .. 来实现的,可以连续执行多个方法或设置多个属性。例如:

var myObject = MyClass()..property1 = value1..property2 = value2..method1()..method2();

        这段代码等同于:

var myObject = MyClass();
myObject.property1 = value1;
myObject.property2 = value2;
myObject.method1();
myObject.method2();

二、级联语法的优点

        级联语法有以下优点:

1.简洁性:减少重复的变量名,使代码更简洁。

2.提高可读性:方法和属性可以在一个链式结构中展示,代码逻辑更加清晰。

三、使用场景

1.初始化对象的多个属性

        在 Flutter 中,级联操作符可以帮助我们在创建对象时对其属性进行初始化:

class User {String name = '';int age = 0;
}void main() {var user = User()..name = 'Alice'..age = 25;print('Name: ${user.name}, Age: ${user.age}');
}

2.Widget 链式构建

        在Flutter 中,我们可以使用级联操作符构建复杂的 Widget 树:

Widget build(BuildContext context) {return Container()..width = 100..height = 100..alignment = Alignment.center..decoration = BoxDecoration(color: Colors.blue,borderRadius: BorderRadius.circular(10),);
}

3.调用多个方法

        如果我们想在一个对象上连续调用多个方法,级联语法也非常有用:

class Logger {void logInfo(String message) {print('Info: $message');}void logError(String message) {print('Error: $message');}
}void main() {var logger = Logger()..logInfo("This is an info message.")..logError("This is an error message.");
}

4.链式操作异步请求

        在处理异步请求或链式数据操作时,级联操作符也能提高代码的简洁度:

fetchData()..then((data) => processData(data))..catchError((error) => handleError(error));


http://www.ppmy.cn/server/141258.html

相关文章

dolphin 配置data 从文件导入hive 实践(一)

datax 支持多种数据源的相互读写,作为开源软件,提供了离线采集功能,方便系统开发,过程中遇到诸多配置,需要开发者自己探索,免费同样有成本 配置模板 {"setting": {},"job": {"s…

Prompt 工程

Prompt 工程 1. Prompt 工程简介 “预训练-提示预测”范式是近年来自然语言处理(NLP)领域的一个重要趋势,它与传统的“预训练-微调-预测”范式相比,提供了一种更为灵活和高效的模型应用方式。 Prompt工程是指在预训练的大型语言…

Knowledge Graph-Enhanced Large Language Models via Path Selection

研究背景 研究问题:这篇文章要解决的问题是大型语言模型(LLMs)在生成输出时存在的事实不准确性,即所谓的幻觉问题。尽管LLMs在各种实际应用中表现出色,但当遇到超出训练语料库范围的新知识时,它们通常会生…

(蓝桥杯C/C++)——基础算法(上)

目录 一、二分法 1.二分法简介 二分法简介-解题步骤 2.整数二分-简介 整数二分-模板 3.浮点二分-简介 浮点二分-模板 4.二分答案-简介 二分答案-模板​​​​​​​ 二、位运算 1.位运算简介 2.常见的位运算 按位与AND(&) 按位或OR( | ) 按位异或…

【HCIP园区网综合拓扑实验】配置步骤与详解(已施工完毕)

一、实验要求 实验拓扑图如上图所示 1、按照图示的VLAN及IP地址需求,完成相关配置 2、要求SW1为VLAN 2/3的主根及主网关 SW2为vlan 20/30的主根及主网关 SW1和SW2互为备份 3、可以使用super vlan(本实验未使用) 4、上层…

【Pytorch】基本语法

Pytorch的基本语法 张量简介 ​ 张量 Tensor 是机器学习的基本构建模块,是以数字方式表示数据的形式. 在张量语言(用于描述张量的语言)中,张量将具有三个维度,一个维度表示 colour_channels 、 height 和 width 。 张量的基本使…

【C】无类型指针及函数指针

一、无类型指针 (1)无类指针只包含内存地址,不知道内存地址从存放数据是什么类型: void *ptrNULL; (2)可以其他类型赋给无类型指针,但是无类型指针赋给有类型指针会警号; …

13.UE5流星火雨,引导施法技能制作

2-15 流星火雨,引导施法技能制作、随机数_哔哩哔哩_bilibili 目录 1.为流星火雨添加按键映射 2.创建流星火雨的动画蒙太奇 3.实现播放动画蒙太奇的逻辑 ​编辑 4.定义发射一波流星火雨的发射物 5.使用动画通知释放流星火雨 1.为流星火雨添加按键映射 创建名为流…