swift运算符重载
来源:互联网 发布:广联达计价软件多少钱 编辑:程序博客网 时间:2024/04/29 09:44
class Complex { var real = 0 var virtual = 0 init(real: Int,virtual: Int) { self.real = real; self.virtual = virtual } func show() -> Void { if real != 0 { if virtual > 0 { print("\(real)+\(virtual)i") }else if virtual < 0 { print("\(real)\(virtual)i") }else { print(real) } }else { if virtual != 0 { print("\(virtual)i") }else { print("0") } } } func add(_ other:Complex) -> Complex { //加法实现 let sum = Complex(real : self.real + other.real,virtual : self.virtual + other.virtual) return sum } //重载运算符 static func ==(left:Complex,right:Complex) -> Bool { if left.real == right.real && left.virtual == right.virtual { return true } return false } static func + (left:Complex,right:Complex) -> Complex { let res = Complex(real:left.real + right.real,virtual:left.virtual + right.virtual) return res } static func - (left:Complex,right:Complex) -> Complex { let res = Complex(real:left.real - right.real,virtual:left.virtual - right.virtual) return res } static func * (left:Complex,right:Complex) -> Complex { let realNum = left.real * right.real - left.virtual * right.virtual let virtualNum = left.real * right.virtual + left.virtual * right.real let res = Complex(real:realNum,virtual:virtualNum) return res }}var com1 = Complex(real: 3, virtual: 4)com1.show()var com2 = Complex(real: -3, virtual: -4)com2.show()var com3 = com2.add(com1)com3.show()var com4 = com1 + com2com4.show()var com5 = com1 - com2com5.show()var com6 = com1 * com2com6.show()extension Int { static prefix func ++(num:inout Int) -> Int { num += 1 return num } static postfix func ++(num:inout Int) -> Int { let temp = num num += 1 return temp } static prefix func --(num:inout Int) -> Int { num -= 1 return num } static postfix func --(num:inout Int) -> Int { let temp = num num -= 1 return temp }}var num = 100var res = ++numprint(num,res)res = --numprint(num,res)var a = 100//var b = a++//print(a,b)var b = a--print(a,b)var s1 = "china"var s2 = "beijing"if s1 == s2 { print("s1 == s2")} else { print("s1 != s2")}var arr1 = ["s","d"];var arr2 = ["d","d"];if arr1 == arr2 { print("arr1 == arr2")} else { print("arr1 != arr2")}var test1 = Complex(real: 3, virtual: 4)var test2 = Complex(real: 3, virtual: 4)test1.show()test2.show()if test1 === test2 { print("test1 === test2")} else { print("test1 !== test2")}if test1 == test2 { print("test1 == test2")} else { print("test1 != test2")}
阅读全文
0 0
- swift运算符重载
- Swift 运算符重载
- swift 重载运算符
- Swift 运算符重载
- Swift-运算符重载
- swift运算符重载
- Swift运算符重载
- Swift之运算符重载
- Swift教程之运算符重载
- Swift语言精要 - Operator(运算符重载)
- Swift重载和自定义运算符
- swift学习笔记之运算符重载
- Swift 运算符重载、自定义运算符教程
- Swift - 运算符重载和运算符函数
- Swift 中的 数组排序 和 重载运算符
- swift 字符、元组、随机数、区间运算、操作符重载——swift学习(三)
- 运算符重载 [++,--,+,<<; &&,||(不可重载)]
- 重载之运算符重载
- 毛剑:Bilibili 的 Go 服务实践(上篇)
- 一周 Go World 新鲜事[Asta 优选]
- 英语流利说 Android 音视频处理相关实践与优化
- 【每天一个linux命令】ls
- 如何基于Go搭建一个大数据平台
- swift运算符重载
- Python print输出不换行没空格
- 阿里云基于 Go 的微服务架构分享
- angularjs路由、添加
- 【Activiti工作流】7.流程定义的CRUD(下)
- day14xml
- xlistview的使用(上拉下拉)
- 利用DB Link两步搞定Oracle两个数据库间的表数据同步
- shader基础