gpt4 book ai didi

arrays - 无法使用类型为 'append' 的参数列表调用 '(T)'

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

尝试在最新的 playground 中编写具有泛型类型的堆栈时,刚遇到这个奇怪的错误。我真的不明白这里出了什么问题,有人可以向我解释为什么我会收到此错误吗?

class MyStack<T> {
var stack1 = [T]()

func push<T>(value: T) {
stack1.append(value) // Error: cannot invoke 'append' with an argument list of type '(T)'
}
}

最佳答案

该类已经是通用的,不需要让 push 也通用

class MyStack<T> {
var stack1 = [T]()

func push(value: T) {
stack1.append(value)
}
}

push声明为 push<T> , 泛型参数覆盖在类上定义的参数。所以,如果我们要重命名通用参数,我们会得到

class MyStack<T1> {
var stack1 = [T1]()

func push<T2>(value: T2) {
stack1.append(value) // Error: cannot invoke 'append' with an argument list of type '(T2)'
}
}

像这样呈现,我们不能推送 T2 是有道理的在 [T1] .

关于arrays - 无法使用类型为 'append' 的参数列表调用 '(T)',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42476758/

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