这篇文章主要介绍“Flutter中怎么调用withAll函数”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Flutter中怎么调用withAll函数”文章能帮助大家解决问题。
接收到这样一个需求,就是英文名字中firstName和lastName,其中任何一个为null,就返回Empty。
刚拿到需求,这不简单,if判断不就可以了
if (firstName == null || lastName == null) { return 'Empty'; } return '$firstName $lastName';
确实,30秒搞定了。
自己想能不能再有更好一点的思路呢?可以更拓展一点的, 例如说三个字符串呢? 例如不是字符串,而是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 }
关于“Flutter中怎么调用withAll函数”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。