gpt4 book ai didi

casting - 类型不匹配 : inferred type is Int but Byte was expected

转载 作者:IT老高 更新时间:2023-10-28 13:47:25 25 4
gpt4 key购买 nike

我目前正在试用 kotlin,这里有一个简单的例子:

var byteToAdd: Byte = 3
var byteArray = byteArrayOf(1, 2, 3, 4, 5)
byteArray[0] += byteToAdd
println(byteArray[0])

但是在执行时,我在第 3 行得到一个错误,因为它说 byteToAdd 是一个 Integer,即使我设置了 byteToAdd< 的类型 到第 1 行的 Byte

为什么会这样?

最佳答案

带有 += 运算符的这一行相当于这个更长的调用 - 如果您在运算符上调用它,您实际上可以在 IntelliJ 中使用意图操作在两者之间进行转换:

byteArray[0] = byteArray[0].plus(byteToAdd)

这里的问题是 plus您在 Byte 上调用的运算符正在返回一个 Int (我假设是因为无法保证结果适合 Byte),不能隐式转换回 Byte 以放回数组中。

您可以通过使用更长的语法来解决此问题,将结果额外转换回 Byte:

byteArray[0] = byteArray[0].plus(byteToAdd).toByte()

关于casting - 类型不匹配 : inferred type is Int but Byte was expected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51790280/

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