美文网首页
go--鸭子类型的简单应用

go--鸭子类型的简单应用

作者: w_dll | 来源:发表于2023-03-01 13:52 被阅读0次

    python判断某个值是否在某个数组中很好判断

    if value not in data:
      ......
    

    golang 的类型是静态的比较麻烦 通过封装一个基本方法可以简化操作

    // 判断是否存在于列表中
    // 实现类似于 python for not in 这样简便方法
    package main
    
    import "fmt"
    
    // 判断是否存在于列表中
    // 接口
    type List interface {
        CheckIsInList() bool
    }
    
    // 不同类型实现各自的方法
    type StrList struct {
        Data []string
    }
    
    func (list StrList) CheckIsInList(val string) bool {
        for _, v := range list.Data {
            if v == val {
                return true
            }
        }
        return false
    }
    
    type IntList struct {
        Data []int
    }
    
    func (list IntList) CheckIsInList(val int) bool {
        for _, v := range list.Data {
            if v == val {
                return true
            }
        }
        return false
    }
    
    func main() {
        a := StrList{
            Data: []string{"a", "b", "c"},
        }
        res := a.CheckIsInList("d")
        fmt.Println(res)
    }
    
    
    

    相关文章

      网友评论

          本文标题:go--鸭子类型的简单应用

          本文链接:https://www.haomeiwen.com/subject/dborldtx.html