gpt4 book ai didi

arrays - 向下转换多个协议(protocol) Array> 到 Array

转载 作者:搜寻专家 更新时间:2023-10-31 23:01:25 25 4
gpt4 key购买 nike

所以我有两个数组

var arrayOne:Array<protocol<P1,P2>>
var arrayTwo:Array<P1>

其中 P1 和 P2 是协议(protocol)。

问题是如何进行向下转型

arrayTwo = arrayOne as Array<P1>

我从 Xcode 得到的是:

Cannot convert value of type 'Array<protocol<P1, P2>>' to specified type 'Array<P1>'

最佳答案

您需要转换数组的元素,而不是数组本身。

arrayTwo = arrayOne.map { $0 as P1 }

或者正如 MartinR 所说,甚至不需要强制转换元素。

arrayTwo = arrayOne.map { $0 }

关于arrays - 向下转换多个协议(protocol) Array<protocol<P1, P2>> 到 Array<P1>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34257678/

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