1. 程式人生 > 其它 >Go 自定義集合型別

Go 自定義集合型別

package main

import "fmt"

//定義MySet型別
type MySet map[interface{}]bool
//判斷元素是否存在
func (m MySet) isExist(a interface{}) bool {
    return m[a]
}
//返回set長度
func (m MySet) len() int {
    return len(m)
}
//設定值
func (m MySet) set(a interface{}) {
    m[a] = true
}
//刪除值
func (m MySet) delete(a interface{}) {
    delete(m, a)
}
//測試程式碼 func main() { //建立一個set var a MySet = make(MySet) //相當於 //var a MySet = make(map[interface{}]bool) //列印set的長度 //fmt.Println(a.len()) //放入一個值 a.set(1) //放入一個相同值 a.set(1) a.set("lqz") a.set("lqz") a.set("lqz") a.set("lqz") a.set("lqz") a.set("lqz
") //列印長度,還是1 //fmt.Println(a.len()) //判斷1是否存在 //fmt.Println(a.isExist(2)) ////刪除1 a.delete(1) ////判斷1是否存在 fmt.Println(a.isExist(1)) fmt.Println(a.len()) for i,_:=range a{ fmt.Println(i) } }