Go 自定義集合型別
阿新 • • 發佈:2021-06-15
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) } }