大佬教程收集整理的这篇文章主要介绍了Swift高级运算符(Advanced Operators),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
1变0,0变1。
let initialBits: UInt8 = 0b00001111
let invertedBits = ~initialBits // equals 11110000
全1得1,其他为0
let firstSixBits: UInt8 = 0b11111100
let lastSixBits: UInt8 = 0b00111111
let middleFourBits = firstSixBits & lastSixBits // equals 00111100
有1得1,其他为0
let someBits: UInt8 = 0b10110010
let moreBits: UInt8 = 0b01011110
let combinedbits = someBits | moreBits // equals 11111110
相异为1,相同为0
let firstBits: UInt8 = 0b00010100
let otherBits: UInt8 = 0b00000101
let outputBits = firstBits ^ otherBits // equals 00010001
<<整体左移,右边填0;
>> 整体右移,左边填0。
title="Swift高级运算符(Advanced Operators)" alt="Swift高级运算符(Advanced Operators)" src="http://code.js-code.com/res/2020/04-28/15/46c8b054896ebdc032eacc833610af5e.png" "<<和>
let shiftBits: UInt8 = 4 // 00000100 in binary
shiftBits << 1 // 00001000
shiftBits << 2 // 00010000
shiftBits << 5 // 10000000
shiftBits << 6 // 00000000
shiftBits >> 2 // 00000001
上面讲解的都是简单的运算符,下面的是为对象添加运算符,使之可计算。
struct Vector2D {
var x = 0.0,y = 0.0
}
func + (left: Vector2D,right: Vector2D) -> Vector2D {
return Vector2D(x: left.x + right.x,y: left.y + right.y)
}
let vector = Vector2D(x: 3.0,y: 1.0)
let anotherVector = Vector2D(x: 2.0,y: 4.0)
let combinedVector = vector + anotherVector
// combinedVector is a Vector2D instance with values of (5.0,5.0)
前缀关键字prefix
后缀关键字postfix
prefix func - (vector: Vector2D) -> Vector2D {
return Vector2D(x: -vector.x,y: -vector.y)
}
let positive = Vector2D(x: 3.0,y: 4.0)
let negative = -positive
// negative is a Vector2D instance with values of (-3.0,-4.0)
let alsoPositive = -negative
// alsoPositive is a Vector2D instance with values of (3.0,4.0)
这里用+=举例。
func += (inout left: Vector2D,right: Vector2D) {
left = left + right
}
var original = Vector2D(x: 1.0,y: 2.0)
let vectortoadd = Vector2D(x: 3.0,y: 4.0)
original += vectortoadd
// original Now has values of (4.0,6.0)
The Swift Programming Language (Swift 2.1)
时间 | 描述 |
---|---|
2015-11-1 | 根据 The Swift Programming Language (Swift 2.1)中的Classes and Structures总结 |
以上是大佬教程为你收集整理的Swift高级运算符(Advanced Operators)全部内容,希望文章能够帮你解决Swift高级运算符(Advanced Operators)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。