Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift:创建具有定义数量的值的UInt8数组_Swift_Uint8t - Fatal编程技术网

Swift:创建具有定义数量的值的UInt8数组

Swift:创建具有定义数量的值的UInt8数组,swift,uint8t,Swift,Uint8t,如何在Swift中创建UInt8的数组? 我已使用以下代码尝试此操作: var array: [UInt8] = [UInt8]() 现在我想循环第二个UInt变量a: for var i: Int = 0; i < a.count; i++ { array[i] = UInt8(a[i]^b[i]) } 变量i的:Int=0;i[0x01,0x01,0x01,0x01,0x01]相同的位时,循环工作正常 有人知道为什么吗?您可以使用数组的init(count:Int,repe

如何在Swift中创建
UInt8
数组
? 我已使用以下代码尝试此操作:

var array: [UInt8] = [UInt8]()
现在我想循环第二个
UInt
变量
a

for var i: Int = 0; i < a.count; i++ {
    array[i] = UInt8(a[i]^b[i])
}
变量i的
:Int=0;i
但是我得到了以下错误:

致命错误:数组索引超出范围

当我在变量
数组中放入与
a
->
[0x01,0x01,0x01,0x01,0x01]
相同的位时,循环工作正常

有人知道为什么吗?

您可以使用
数组的
init(count:Int,repeatedValue:Element)
如下:

var array = [UInt8](count: 5, repeatedValue: 0x01)
要了解有关数组初始值设定项的更多信息,请查看此处:

您可以使用
数组的
init(count:Int,repeatedValue:Element)
,如下所示:

var array = [UInt8](count: 5, repeatedValue: 0x01)

要了解有关数组初始值设定项的更多信息,请查看此处:

您可以使用 第二个数组的计数,以避免索引超出范围错误

var array = [UInt8](count: a.count, repeatedValue: 0x00)
也可以在循环中使用数组的append方法

for var i:Int = 0; i < a.count; i++
{
   array.append( UInt8(a[i]^b[i]) )
}
变量i的
:Int=0;i
您可以使用 第二个数组的计数,以避免索引超出范围错误

var array = [UInt8](count: a.count, repeatedValue: 0x00)
也可以在循环中使用数组的append方法

for var i:Int = 0; i < a.count; i++
{
   array.append( UInt8(a[i]^b[i]) )
}
变量i的
:Int=0;i
来自 在Swift文件中:

不能使用下标语法将新项追加到 数组

有不同的可能解决方案:

创建具有所需大小的数组,如@fantatitude所述:

var array = [UInt8](count: a.count, repeatedValue: 0)
for var i = 0; i < a.count; i++ {
    array[i] = UInt8(a[i]^b[i])
}
zip(a,b)
返回所有数组元素对的序列 (如果两者中较短的数组已用尽,则停止)<代码>映射()
然后计算每对的XOR,并将结果返回为 数组。

来自 在Swift文件中:

不能使用下标语法将新项追加到 数组

有不同的可能解决方案:

创建具有所需大小的数组,如@fantatitude所述:

var array = [UInt8](count: a.count, repeatedValue: 0)
for var i = 0; i < a.count; i++ {
    array[i] = UInt8(a[i]^b[i])
}
zip(a,b)
返回所有数组元素对的序列 (如果两者中较短的数组已用尽,则停止)<代码>映射()
然后计算每对的XOR并返回结果,如下所示:
一个数组。

这里的map+zip使用得非常好。一句台词太美了;)我如何使用这样一个2D数组(Java代码)byte[][]tmp=newbyte[2*(4+1)][4]实现这一点@用户3143691:我建议您开始一个新问题,其中包括所有相关信息,例如,您如何在Swift中定义二维数组a、b。我已经读过了;)var tmp=[[UInt8]](count:size,repeatedValue:[UInt8](count:5,repeatedValue:0x01))这里对map+zip的使用非常好。一句台词太美了;)我如何使用这样一个2D数组(Java代码)byte[][]tmp=newbyte[2*(4+1)][4]实现这一点@用户3143691:我建议您开始一个新问题,其中包括所有相关信息,例如,您如何在Swift中定义二维数组a、b。我已经读过了;)var tmp=[[UInt8]](count:size,repeatedValue:[UInt8](count:5,repeatedValue:0x01))Swift 3:var数组=[UInt8](repeating:0x01,count:5)@HalR:should[UInt8]not[UInt8]Swift 3:var数组=[UInt8](repeating:0x01,count:5)@HalR:should[UInt8]not[UInt8]变量b是什么?变量b是什么?