iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Flutter基于DartUnwrappingMultipleOptional小技巧
  • 262
分享到

Flutter基于DartUnwrappingMultipleOptional小技巧

FlutterDartMultipleOptionalFlutterDart 2022-12-08 20:12:26 262人浏览 独家记忆
摘要

目录正文withAll函数测试一下正文 接收到这样一个需求,就是英文名字中firstName和lastName,其中任何一个为null,就返回Empty。 刚拿到需求,这不简单,i

正文

接收到这样一个需求,就是英文名字中firstName和lastName,其中任何一个为null,就返回Empty。

刚拿到需求,这不简单,if判断不就可以了

if (firstName == null || lastName == null) {
    return 'Empty';
} 
return '$firstName $lastName';

确实,30秒搞定了。

withAll函数

自己想能不能再有更好一点的思路呢?可以更拓展一点的, 例如说三个字符串呢? 例如不是字符串,而是Object类型的呢?

于是就有了下面的代码

提供一个withAll函数,这个函数检查整个列表的空值,如果发现任何空值,回调将不会被调用,如果列表没有空值,回调将调用整个列表转换为非可选项列表T

T? withAll<T>(
    List<T?> optionals,
    T Function<List<T>> callback,
) => optionals.any((e) => e == null)
        ? null
        : callback(optionals.cast<T>());

然后添加一个方法,调用withAll函数,为他提供可选值列表,只有当列表不包含任何空值的时候才会调用回调

String getFullName(
    String? firstName,
    String? lastName,
) => withAll([
        firstName,
        lastName,
    ], (names) => names.join(' ')) ?? 'Empty';

测试一下

void main(List<String> args) {
    print(getFullName(null, null));// Empty
    print(getFullName('John', null));// Empty
    print(getFullName(null, 'Deo'));// Empty 
    print(getFullName('John', 'Deo'));// John Deo
}

哈哈,这代码可拓展性一下子就上来了,而且特别像官方api

今天增加了一个让别人看不懂代码的小思考。

以上就是Flutter基于dart Unwrapping Multiple Optional小技巧的详细内容,更多关于Flutter Dart Multiple Optional的资料请关注编程网其它相关文章!

--结束END--

本文标题: Flutter基于DartUnwrappingMultipleOptional小技巧

本文链接: https://www.lsjlt.com/news/174592.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Flutter基于DartUnwrappingMultipleOptional小技巧
    目录正文withAll函数测试一下正文 接收到这样一个需求,就是英文名字中firstName和lastName,其中任何一个为null,就返回Empty。 刚拿到需求,这不简单,i...
    99+
    2022-12-08
    Flutter Dart Multiple Optional Flutter Dart
  • python小技巧-基于python本身
    1 脚本与命令行结合可以使用下面方法运行一个Python脚本,在脚本运行结束后,直接进入Python命令行。这样做的好处是脚本的对象不会被清空,可以通过命令行直接调用。python -i script.py或者你安装了ipython ipy...
    99+
    2023-01-31
    小技巧 python
  • SafeList in Flutter and Dart小技巧
    目录正文封装一个SafeList测试一下正文 最近遇到一些列表的错误,例如,列表为空时直接调用方法会报错。 一般都会在使用前判断列表是否为空,再使用。 虽然Flutter提供了N...
    99+
    2022-12-08
    SafeList Flutter Dart Flutter Dart技巧
  • 基础Linux Shell的技巧小结
    这篇文章主要讲解了“基础Linux Shell的技巧小结”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基础Linux Shell的技巧小结”吧!一、自动补齐:[Tab]这个技巧很多人都应该会...
    99+
    2023-06-09
  • 关于Spring MVC小技巧有哪些
    这篇文章主要讲解了“关于Spring MVC小技巧有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“关于Spring MVC小技巧有哪些”吧!1.使用@Controller构造型这是创建可...
    99+
    2023-06-16
  • 基于jQuery实现列表循环滚动小技巧(超简单)
    看到一个很好的思路,记录一下 之前使用jQuery做滚动效果,在这两篇文章里有写:文一、文二,分别使用了scrollLeft()与scrollTop()、scroll()来...
    99+
    2024-04-02
  • Python中关于property使用的小技巧
    目录property属性具体实例property属性的有两种方式装饰器方式旧式类新式类类属性方式property对象与@property装饰器对比property对象类属性@prop...
    99+
    2024-04-02
  • FlutterRecoveringStreamErrors小技巧
    目录正文简单封装override bind()测试一下正文 你是否遇到过,出现异常的时候也需要给一个默认值,让程序可以继续运行下去? 一般的做法就是 一个达到try catch,然...
    99+
    2022-12-08
    Flutter Recovering Stream Errors Flutter Stream
  • Python3 小技巧
    完全个人总接 每个文件头部都可以加入这个,或者放到用单独一个文件,再import *。其实都一样,只需要一行false=False;true=True;none=null=None;hid=lambda o:"0x%X"%id(o) 作用...
    99+
    2023-01-31
    小技巧
  • JavaScript小技巧
    这篇文章主要介绍了 JavaScript小技巧,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.判断数据类型使用 Object.protot...
    99+
    2024-04-02
  • 关于JavaScript中JSON的5个小技巧分享
    目录1.格式化2.隐藏字符串化数据中的某些属性3.使用toJSON创建自定义输出格式4.恢复数据5.使用revivers隐藏数据1. 格式化 默认的字符串化器还会缩小 JSON,看起...
    99+
    2024-04-02
  • Windows tips小技巧
    自从 Windows 2000 以及 Active Directory(Microsoft Windows 2000 操作系统的目录服务)面世以来,在与 Microsoft 合作伙伴交往的亲身经历中 ,我积累了许多这样的...
    99+
    2023-05-25
    Windows tips 技巧
  • CSS中关于居中的小技巧是怎样的
    本篇文章为大家展示了CSS中关于居中的小技巧是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 css居中 代码如下:margin...
    99+
    2024-04-02
  • PyCharm使用小技巧
    本文部分内容参考了明宇李前辈的博客,原文请阅读 Pycharm的配置(背景颜色,字体,解释器等); 鼠标滑轮控制字体大小 部分参考了墨颜前辈的博客,原文请阅读 用鼠标滑轮控制代码字体大小; 感谢各位前辈的分享。除此之外,其余均为自己平时使...
    99+
    2023-01-31
    小技巧 PyCharm
  • Python小技巧 - string 和
    本文记录了 str 转 list 的多种情况的解决方法和 list 转 str 的解决方法。 目录 1. string to list 2. list to string 1. string to list 情况...
    99+
    2023-01-31
    小技巧 Python string
  • Android开发中Flutter组件实用技巧
    目录正文简化 Assert 管理更容易 imports从按钮上移除飞溅效果更简单的平台小工具可见性小工具正文 今天我将向您展示 4 个非常有用的 Flutter 技巧,您可以立即应用...
    99+
    2024-04-02
  • Windows98优化小技巧
    加快系统启动速度   1、用系统配置程序定制自动选项。   单击“开始”按钮,选择“运行”,在“打开”输入框内输入msconfig,单击&ldq...
    99+
    2023-05-23
    技巧 Windows98
  • 基于PHP打造优秀的直播功能的技巧
    当前,越来越多的企业和个人在互联网上使用直播功能来交流和展示产品或服务,这种方式已经成为了营销传播的重要手段。以PHP为代表的后端语言,因为其具有良好的扩展性和可读性,是广大开发者的首选。在本文中,我们将分享一些基于PHP打造优秀的直播功能...
    99+
    2023-05-21
    直播 技巧 PHP
  • 让Win7系统开机速度小于30秒的技巧
    Windows7系统,目前使用这个系统的朋友越来越多,Windows7系统,是一个比较稳定完美的系统,但Windows7系统有一个缺点,在没有使用SSD固态硬盘时,开机速度比较慢。 更改系统设置,在没有SSD固态硬盘的情...
    99+
    2023-06-10
    Win7 开机速度 速度 技巧 开机
  • flutter实现下拉框功能——基于DropdownButtonFormField
    问题背景 客户端日常开发和学习过程,下拉框是一个很常见的组件,本文主要介绍flutter中实现下拉框的一个方案,基于DropdownButtonFormField来进行实现。 问题分析 DropdownButtonFormF...
    99+
    2023-09-05
    flutter android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作