Swift:错误:使用未声明类型'T'

时间:2016-10-13 21:55:24

标签: swift generics swift3

Swift 3.0并收到此错误,不确定原因:

代码:

func rest(_ list: ArraySlice<T>) -> ArraySlice<T> {
    return list.dropFirst()
}

错误:

error: repl.swift:1:48: error: use of undeclared type 'T'
func rest(_ list: ArraySlice<T>) -> ArraySlice<T> {
                                               ^

1 个答案:

答案 0 :(得分:6)

您需要指定ArraySlice的通用参数,只需使用ArraySlice<T>不声明T

func rest<T>(_ list: ArraySlice<T>) -> ArraySlice<T> {
    return list.dropFirst()
}

或者:

class MyClass<T> {
    func rest(_ list: ArraySlice<T>) -> ArraySlice<T> {
        return list.dropFirst()
    }
}