登录
首页 >  Golang >  Go问答

为切片创建一个多用途接收器函数

来源:stackoverflow

时间:2024-03-06 10:42:22 249浏览 收藏

小伙伴们有没有觉得学习Golang很有意思?有意思就对了!今天就给大家带来《为切片创建一个多用途接收器函数》,以下内容将会涉及到,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!

问题内容

type slice []T

func (s *slice) remove(element T) []T {

    newSlice := []T{}

    for _, i:= range s {
        if i != element {
            newSlice = append(newSlice, i)
        }
    }
    return newSlice
}

我正在尝试创建一个通用接收器函数来从我正在使用的代码上方的切片中删除元素,但我收到未声明的名称:t错误..


正确答案


那是因为您尚未将类型 slice 定义为泛型类型。您刚刚将其定义为 t 类型的切片,其中 t 类型不存在。

如果您确实将 slice 定义为泛型类型,则您的方法有效:

type slice[T comparable] []T

func (s *slice[T]) remove(element T) []T {

    newSlice := []T{}

    for _, i := range *s {
        if i != element {
            newSlice = append(newSlice, i)
        }
    }
    return newSlice
}

(还需要将 range s 更改为 range *s

今天关于《为切片创建一个多用途接收器函数》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>