gpt4 book ai didi

swift - 二元运算符 '==' 不能应用于类型 'Int8' 和 'Int' 的操作数

转载 作者:行者123 更新时间:2023-11-28 12:27:01 25 4
gpt4 key购买 nike

自从我将代码转换为 Swift 3 后,我得到了这个错误:

Binary Operator '==' can not be applied to operands of type 'Int8' and 'Int'

在 Swift 2 中,它是这样工作的:

    var flags : UInt8
var count : Int = 1
var zw = [UInt8](repeating: 0, count: 2)

let countTotal = data.count / MemoryLayout<UInt8>.size

var bytes = [UInt8](repeating: 0, count: countTotal)

data.copyBytes(to: &bytes, count: countTotal*MemoryLayout<UInt8>.size)

flags = bytes[0]
if([0x01 & flags] == [0 & 0x01]) // **<--ERROR**
{
zw[0] = bytes[count]
zw[1] = bytes[count + 1
let bpsys = UnsafePointer(zw).withMemoryRebound(to: UInt16.self, capacity: 1)
{
$0.pointee
}

最佳答案

您一开始就使用了错误的括号 ([ 而不是 ()。但看起来 Swift 3 以一种微妙的方式改变了类型推断系统,破坏了您的程序。试试这个:

if (0x01 & flags) == (0 & 0x01) {

}

最后一个问题是为什么? 0 & 0x01 总是返回 0。你也可以这样写:

if 0x01 & flag == 0 {

}

关于swift - 二元运算符 '==' 不能应用于类型 'Int8' 和 'Int' 的操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43105713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com