8.8 Swift恒等运算符

2023-12-19 06:58
文章标签 运算符 8.8 swift 恒等

本文主要是介绍8.8 Swift恒等运算符,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        /**

         恒等运算符

         */

        

       

        

        class Rect {

            // 结构体成员变量

            var width: Double = 5.0

            var height: Double = 6.0

            

            // 结构体的成员方法, 可以访问使用成员属性。

            func getWidth() -> Double {

                return width

            }

            

            func show() -> Void {

                print("width\(width)")

            }

        }

        

        

        var rect1: Rect = Rect()

        

        

        var rect2: Rect = rect1

        

        print("---------------->")

        print("rect1.width==\(rect1.width)")

        print("rect1.height==\(rect1.height)")

        

        

        // 改变rect1 的宽度

        rect1.width = 100.0

        

        

        print("rect2.width==\(rect2.width)")

        print("rect2.height==\(rect2.height)")

        

        

        /**

         我们可以看到

         rect1 赋给 rect2 后,改变 rect1的宽度,那么 rect2的宽度也改变了。

         

         说明是让rect2指向rect1 也就是它们两个指向同一个实例。

         说明类是引用类型

         */

        

        

        /**

         类的实例出现这种赋值操作的时候,比如将rect1 赋给 rect2

         这个是引用,不会拷贝一块新的内存;

         rect2  rect1 实际上指向同一个实例,称之为同一个实例的两个引用。

         

         那么如果有多个变量或常量指向同一个类的实例的时候,那么我们怎么

         判断这多个常量 变量是否指向同一个实例呢?

         

         

         如何判断 rect2 rect1 指向同一个实例呢?

         Swift提供了一个恒等于 运算符

         */

        

        /**

         

         关系运算符   ==     !=

         

         判断两个对象是否指向同一个类的实例的。

         ===

         !==

         */

        

        if rect1 === rect2 {

            print("equal")

        }

        

        if rect1 !== rect2 {

            print("Not equal")

        }

        

        /**

         特别注意的是,

         ===

         !==

         只能用于类的实例

         不能用于结构体

         */

这篇关于8.8 Swift恒等运算符的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/511284

相关文章

【重学 MySQL】十九、位运算符的使用

【重学 MySQL】十九、位运算符的使用 示例检查权限添加权限移除权限 在 MySQL 中,位运算符允许你直接在整数类型的列或表达式上进行位级操作。这些操作对于处理那些需要在二进制表示上进行直接修改或比较的场景特别有用,比如权限管理、状态标记等。 &(位与) 对两个数的二进制表示进行位与操作。只有两个相应的二进制位都为 1 时,结果的该位才为 1,否则为 0。 |(位

C语言程序设计(数据类型、运算符与表达式)

一、C的数据类型 C语言提供的数据类型: 二、常量和变量 2.1常量和符号常量 在程序运行过程中,其值不能被改变的量称为常量。 常量区分为不同的类型: 程序中用#define(预处理器指令)命令行定义变量将代表常量,用一个标识符代表一个常量,称为符合常量。 2.2变量 变量代表内存中具有特定属性的一个存储单元,用来存放数据,在程序运行期间,这些值是可以 改变的。 变

第二十四章 rust中的运算符重载

注意 本系列文章已升级、转移至我的自建站点中,本章原文为:rust中的运算符重载 目录 注意一、前言二、基本使用三、常用运算符四、通用约束 一、前言 C/C++中有运算符重载这一概念,它的目的是让即使含不相干的内容也能通过我们自定义的方法进行运算符操作运算。 比如字符串本身是不能相加的,但由于C++中的String重载了运算符+,所以我们就可以将两个字符串进行相加、但实际

《C++中的移动构造函数与移动赋值运算符:解锁高效编程的最佳实践》

在 C++的编程世界中,移动构造函数和移动赋值运算符是提升程序性能和效率的重要工具。理解并正确运用它们,可以让我们的代码更加高效、简洁和优雅。 一、引言 随着现代软件系统的日益复杂和对性能要求的不断提高,C++程序员需要不断探索新的技术和方法来优化代码。移动构造函数和移动赋值运算符的出现,为解决资源管理和性能优化问题提供了有力的手段。它们允许我们在不进行不必要的复制操作的情况下,高效地转移资源

Java基础--基本运算符介绍

Java运算符 用于指明对于操作数的运算方式。 分类: 按照操作数的数目来进行分类: 单目a++ 双目a+b 三目(a>b)?x:y; 按照运算符的功能来进行分类: 算术运算:+ - * / %(取余)++ – 如: int x=1; x=x+1;//x空间内的值,自己增加了一个 x++;//x空间内的值,自增一个 ++x;//对于x空间内的值来讲都是一致,最终的结果都自

【MATLAB】运算符及其优先级

在MATLAB语言中,运算符可以灵活组合以构建更复杂的运算表达式。需要注意的是,与其他高级编程语言类似,MATLAB中的运算符也有优先级。掌握运算优先级有助于我们正确地执行复杂的计算。以下是按照从高到低顺序排列的MATLAB运算符及其优先级列表。 括号 ()。数组的转秩 ( .’ ),数组幂 ( .^ ) ,复转秩 ( ’ ),矩阵幂 ( ^ )。代数正 ( + ),代数负 ( - ),逻辑非

Swift知识点---RxSwift学习

1. 什么是RxSwift RxSwift是Swift函数响应式编程的一个开源库,由Github的ReactiveX组织开发、维护 RxSwift的目的是:让数据/事件流 和 异步任务能够更方便的序列化处理,能够使用Swift进行响应式编程 RxSwift本质上还是观察者模式,并且是一个响应式的,并且可以序列化的 观察者模式 观察者模式包括:KVO、通知等 爸爸妈妈照看观察宝宝 其中,

王立平-- Swift

Swift是供iOS和OS X应用编程的新编程语言,基于C和Objective-C,而却没有C的一些兼容约束。Swift采用了安全的编程模式和添加现代的功能来是的编程更加简单、灵活和有趣。界面则基于广受人民群众爱戴的Cocoa和Cocoa Touch框架,展示了软件开发的新方向。     Swift已经存在了多年。Apple基于已有的编译器、调试器、框架作为其基础架构。通过ARC(Au

C++ 第7章 运算符重载

7.1 运算符重载规则 7.1.1 重载运算符的限制 可重载运算符: + - * / % ^ & | ~! = < > += -+ *= /= %=^= &= |= << >> >>= <<= == !=<= >= && || ++ -- ->* , ->[] () new delete 不可重载运算符: . .* :: ?: sizeof 重载运算符函数可以对运算符做出新的解

java复习第六课,运算符

java语言支持运算符: 算数运算符:+,-,*,/,%,++,-- 二元运算符(+,-,*,/,%) 整数运算: 如果两个操作数有一个是Long,那么结果就为Long。 没有Long时,结果就为int,即使操作数全为shot,byte,结果也是int。 浮点运算: 如果两个操作数有一个是double,那么结果就为double。 只有两个操作数都是float,则结果才能为float