返回顶部
首页 > 资讯 > 精选 >Swift如何重构自定义空等运算符
  • 682
分享到

Swift如何重构自定义空等运算符

2023-07-05 11:07:44 682人浏览 安东尼
摘要

今天小编给大家分享一下Swift如何重构自定义空等运算符的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、思路来源最近在做

今天小编给大家分享一下Swift如何重构自定义空等运算符的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

一、思路来源

最近在做 Flutter 开发时发现一个之前没注意到的空等运算符 “??=”,代表左边为空时,才会把右边的值赋给左边,然后返回左边的变量值;常用于避免多次赋值的情况;发现非常实用,于是给 swift 也自定义一个使用,最终如下;

二、示例

b1 获取 a1 的值,a1 如果不为空直接返回;为空则赋值;

var a1: UIView?;let b1 = a1 ??= UITableView();print("a1: \(a1)");//a1: Optional(<UITableView: 0x7feda0830600;print("b1: \(b1)");//b1: <UITableView: 0x7feda0830600

等同于:

var a1: UIView?;if(a1 == nil) {    a1 = UITableView();}let b1 = a1;

可以让我们少写一行代码;

三、源码

precedencegroup NilEqualPrecedence {  /// 优先从左向右, left, right or none  associativity: left  higherThan: AssignmentPrecedence//优先级,比等号运算符高  // lowerThan: AdditionPrecedence // 优先级, 比...低  assignment: true // 是否是赋值运算}/// 空等运算符声明infix operator ??=: NilEqualPrecedence/// 空等运算符实现func ??= <T>(lhs: inout T?, rhs: T) -> T {    if lhs == nil {        lhs = rhs;    }    return lhs!; }

以上就是“Swift如何重构自定义空等运算符”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: Swift如何重构自定义空等运算符

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

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

猜你喜欢
  • Swift如何重构自定义空等运算符
    今天小编给大家分享一下Swift如何重构自定义空等运算符的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、思路来源最近在做 ...
    99+
    2023-07-05
  • Swift重构自定义空等运算符“??=”实例
    目录一、思路来源二、示例三、源码四、总结一、思路来源 最近在做 Flutter 开发时发现一个之前没注意到的空等运算符 “??=”,代表左边为空时,才会把右...
    99+
    2023-03-13
    Swift重构自定义空等运算符 Swift 空等运算符 “??=”
  • Swift如何重构重载运算符
    今天小编给大家分享一下Swift如何重构重载运算符的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。基础类型 String 为例...
    99+
    2023-07-05
  • Swift 重构重载运算符示例解析
    目录一、思路来源二、基础类型 String 为例重载乘法运算符源码实现:三、对象类型 UIEdgeInsets 为例重载加法运算符将源码实现:四、总结一、思路来源 研究自定义运算符...
    99+
    2023-03-13
    Swift 重构重载运算符 Swift  重构重载
  • Swift如何自定义UIView
    小编给大家分享一下Swift如何自定义UIView,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Swift自定义View和OC自定义View的原理都是一样的,重写...
    99+
    2023-06-25
  • C#重载运算符怎么定义
    本文小编为大家详细介绍“C#重载运算符怎么定义”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#重载运算符怎么定义”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。C# 运算符重载您可以重定义或重载 C#...
    99+
    2023-06-17
  • c语言中如何定义运算符
    c语言中运算符定义为在特定操作符作用下的运算数执行运算,分类包括算术、关系、逻辑、位运算符、赋值运算符和特殊运算符。 C语言中运算符的定义 C语言中,运算符是表示特定操作的符号或关键字...
    99+
    2024-05-08
    c语言
  • Python3实现自定义比较排序/运算符
    目录自定义比较排序/运算符1.cmp函数2.重写类方法Python3实现各种排序方法自定义比较排序/运算符 Python3和Python2相比有挺多变化。 在Python2中可以直接...
    99+
    2024-04-02
  • C++构造函数+复制构造函数+重载等号运算符调用
    目录前言:1、赋值和初始化的区别2、初始化和赋值分别调用哪个函数?3、编写测试类前言: 初学C++发现了下面这个问题,其中Duck是一个已知的类,并以多种方式指定对象的值: Duck...
    99+
    2024-04-02
  • 如何用Shell实现数学运算自定义函数
    本篇内容介绍了“如何用Shell实现数学运算自定义函数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!最近脚本中总是需要计算,每次都用awk会...
    99+
    2023-06-09
  • C++构造函数,复制构造函数和重载等号运算符怎么调用
    本篇内容主要讲解“C++构造函数,复制构造函数和重载等号运算符怎么调用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++构造函数,复制构造函数和重载等号运算符怎么调用”吧!前言:初学C++发现...
    99+
    2023-06-29
  • PHP太空船运算符如何使用
    这篇文章主要介绍“PHP太空船运算符如何使用”,在日常操作中,相信很多人在PHP太空船运算符如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP太空船运算符如何使用”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-22
  • 如何使用自定义hooks对React组件进行重构
    这篇文章主要介绍了如何使用自定义hooks对React组件进行重构的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何使用自定义hooks对React组件进行重构文章都会有所收获,下面我们一起来看看吧。处理复杂性...
    99+
    2023-07-05
  • C#中如何实现运算符重载
    这期内容当中小编将会给大家带来有关C#中如何实现运算符重载,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。当一个订单与另外一个订单相加形成一个新的订单。新订单的货物为两个订单的货物的并集,总价为两个订单的总...
    99+
    2023-06-18
  • C++中如何实现运算符重载
    这篇文章主要为大家展示了“C++中如何实现运算符重载”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C++中如何实现运算符重载”这篇文章吧。1、引例class Complex{priva...
    99+
    2023-06-28
  • JavaScript如何使用空值合并运算符
    这篇文章主要为大家展示了“JavaScript如何使用空值合并运算符”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript如何使用空值合并运算符”这篇文章吧。空值合并运算符 '...
    99+
    2023-06-27
  • 如何在javascript中使用严格相等运算符
    如何在javascript中使用严格相等运算符?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、说明===严格相等运算符,首先计算其操作数的值,然后比较这两个值,比较过程没...
    99+
    2023-06-15
  • JavaScript如何简写双重按位非运算符
    这篇文章主要介绍了JavaScript如何简写双重按位非运算符,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。简写双重按位非运算符按位运算符绝...
    99+
    2024-04-02
  • C++中递增运算符重载如何实现
    这篇文章主要介绍“C++中递增运算符重载如何实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++中递增运算符重载如何实现”文章能帮助大家解决问题。递增运算符形如"a++"、&...
    99+
    2023-07-02
  • Go语言中如何实现运算符重载?
    如何在Go语言中实现运算符重载?Go语言是一种现代化的编程语言,因其简洁的语法和高效的性能而备受开发者青睐。然而,Go语言并没有提供像C++或Python等语言中的运算符重载功能。运算符重载是指在不同数据类型之间重定义或扩展运算符的行为,使...
    99+
    2023-12-23
    Go语言 实现 运算符重载
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作