代码之家  ›  专栏  ›  技术社区  ›  Sam

在Golang中使用全局列表变量。接收“使用不带选择器的包列表”

go
  •  -2
  • Sam  · 技术社区  · 6 年前

    我有一个名为rooms的全局链接列表。它将存储该用户输入的所有房间的名称。在我的函数create中,我试图引用这个名为rooms的列表。我在main函数中实例化列表。当我尝试将项目添加到列表“房间”时,我收到错误“使用不带选择器的包列表”。


    package main
    
    import (
        "net"
        "fmt"
        "bufio"
        "os"
        "container/list"
    )
    
    var rooms list
    
    func create() string{
        reader := bufio.NewReader(os.Stdin)
        fmt.Print("Name the Chatroom");
        input, _ := reader.ReadString('\n');
        _ = rooms.PushFront(input);
        return "Joined room " + input;
    }   
    
    func main() {
    
        rooms := list.New()
        reader := bufio.NewReader(os.Stdin)
        fmt.Print("Enter a name")
        name, _ := reader.ReadString('\n')
    
        // connect to this socket
        conn, _ := net.Dial("tcp", "127.0.0.1:8081")
        for { 
            // read in input from stdin
            reader := bufio.NewReader(os.Stdin)
            fmt.Print("Text to send: ")
            text, _ := reader.ReadString('\n')
            // send to socket
            fmt.Fprintf(conn, text + "\n")
            // listen for reply
            message, _ := bufio.NewReader(conn).ReadString('\n')
            fmt.Print("Message from server: "+message)
        }
    }  
    
    2 回复  |  直到 6 年前
        1
  •  3
  •   RayfenWindspear    6 年前

    *list.List ,指向 List 从包中键入 list

    var rooms list var rooms *list.List

        2
  •  2
  •   Maxim    6 年前

    在这里玩 https://play.golang.org/p/ORa6MI-2Pbn

    改变 var rooms list var rooms = list.New()

    var房间列表 这是错误的: list *list.List