2016-03-01 28 views
-1

我有一個服務器,我不想每個連接都保存到列表中。可以說:Golang地圖或結構添加或從列表中刪除

type Connection struct { 
    Id uint16 
    Conn *conn.TCP 
} 

var connections []Connection 

但是我想要刪除/獲取特定的連接ID?我應該使用什麼?

我想的是一樣的東西:

func GetConnectionById(id uint16) Connection { 
    for k, v := range connections { 
     if v.Id == id { 
      return v 
     } 
    } 
} 

有沒有更好的方法嗎?

+0

如果它們都是數字'Id',你有沒有可能將它們全部添加到數組中並將該鍵設置爲數字ID? – Derek

+0

@OliverQueen像'make(map [uint16] Connection)'? – majidarif

+0

是的,正是我所說的 – Derek

回答

2

爲什麼不通過Id在地圖上標識每個Connection

package main 

type Connection struct { 
    Id uint16 
    X string 
} 

var connections map[uint16]Connection 

func main() { 
    connections = make(map[uint16]Connection) 
    connections[1] = Connection{} 
} 
+0

嗯,我剛剛意識到當奧利弗奎恩在評論中問我:D – majidarif

+0

好吧,那麼:) – resilva87

+0

是否有可能有此地圖全球? – majidarif

相關問題