我学习Swift并使用Swift操作符(https://developer.apple.com/documentation/swift/operator-declarations),并看到了操作符"Pointwise Logical Not"(.!).我开始在谷歌上搜索,发现了stackoverover(What is functionality of Pointwise Equal, Pointwise less than, and Pointwise greater in Swift?)上的一个问题,他们告诉我有关MMO协议并提供了文档的链接,但我在该协议的操作员中没有找到操作员.!.您能用这个操作员帮我举一个例子吗?提前感谢您

main.swift:131:9:错误:类型"Bool"不符合协议"SIMDScalar" 让z = MID3(真,假,真)

main.swift:132:10:错误:无法推断通用参数"存储" var yy = .!z

main.swift:131:9:错误:类型"Bool"不符合协议"SIMDScalar" 让z = MID3(真,假,真)

main.swift:132:10:错误:无法推断通用参数"存储" var yy = .!z

推荐答案

我认为你的问题来自于试图让SIMD个值充满布尔.SIMD种类型只存储int/floats/double.为了存储布尔值,有一个名为SIMDMask的专用类型,例如,它是.==.<等运算符的结果.

.!否定了MMO屏蔽的每个布尔成员,例如

import simd

let a: SIMD2<Int> = [10, 20]
let b: SIMD2<Int> = [ 0, 30]
let exampleMask: SIMDMask<SIMD2<Int>> = a .< b
let invertedMask = .!exampleMask

print( exampleMask) // => [false,  true]
print(invertedMask) // => [ true, false]

a .< b的结果与.!(a .>= b)相同,就像对于单个纯量值,!(a < b)!(a >= b)相同一样.

Swift相关问答推荐

VisionOS发送通知

如何消除SwiftUI中SF符号的填充

SWIFT中MAP的静态方法包装器

依赖于@Environment的init@StateObject

如何在自定义视图中读取修改符子元素?

调度组是否阻止iOS中的主线程?

如何将多个完成处理程序转换为异步?

如何在闭包中使用构造 await sync

从 actor 的 init 方法调用方法

如何延迟 swift 属性 didSet 使其每秒只触发一次

swift 是否遇到 Java 的 2gb 最大序列化大小问题?

为 SwiftUI 中的属性提供默认值

在 Swift 中增量写入大型文本文件的最佳方法

格式化大货币数字

如何裁剪图像 3:4 ?迅速

SwiftUI:决定键盘重叠的内容

swiftui更改显示的 Select 器值

AVPlayer 在 iOS 15.4 中寻求 completionHandler 返回 false

Swift - 如何更新多目录中的对象

Swift 覆盖实例变量