gpt4 book ai didi

Swift 结构扩展 : 'Cannot convert return expression of type to return type '

转载 作者:行者123 更新时间:2023-11-30 10:09:43 66 4
gpt4 key购买 nike

假设您有以下结构和协议(protocol):

struct Ticket {
var items: [TicketItem] = []
}

struct TicketItem {
}

protocol DisplayableTicket {
var displayedItems: [DisplayableTicketItem] { get }
}

protocol DisplayableTicketItem {}

现在,如果我像这样扩展这些结构:

extension Ticket: DisplayableTicket {
var displayedItems: [DisplayableTicketItem] {
return self.items
}
}

extension TicketItem: DisplayableTicketItem {}

我在return self.items行上收到以下错误:

Cannot convert return expression of type '[TicketItem]' to return type 'DisplayableTicketItem'

如果我将 Ticket 和 TicketItem 的类型更改为 class,我不会收到错误。为什么 Ticket 结构体不能包含 TicketItem 结构体数组并按上述方式进行扩展?

最佳答案

像这样:

extension Ticket: DisplayableTicket {
var displayedItems: [DisplayableTicketItem] {
return self.items.map{$0 as DisplayableTicketItem}
}
}

关于Swift 结构扩展 : 'Cannot convert return expression of type <type> to return type <type>' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33635924/

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