go - 在 Golang 中使用全局列表变量。收到“使用没有选择器的包列表”
问题描述
我有一个名为房间的全局链表。它将存储该用户输入的所有房间的名称。在我的函数创建中,我试图引用这个名为房间的列表。我在我的主要功能中实例化列表。当我尝试将项目添加到列表“房间”时,我收到错误“使用没有选择器的包列表”。
我希望能够从我的 create 函数中将一个字符串添加到我的名为 rooms 的列表中。
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)
}
}
解决方案
房间的类型应该是一个从包中指向类型*list.List
的指针。List
list
更改var rooms list
为var rooms *list.List
推荐阅读
- django - 如何在一个字段中添加多个电子邮件
- c# - 如何将Unicode字符插入csv文件?
- python - 如何在带有 JSONfield 的 django_filters 中使用 ModelMultipleChoiceFilter
- excel - 运行宏后如何在excel中保存轴边界?
- python-3.x - asyncio 似乎在 HTTP 请求完成之前完成
- python - 无法从网页中抓取格式混乱的某些字段
- python - NumPy 2D 矩阵:在列为真时返回真行索引
- postgresql - 有没有办法在 postgres 中为一组单词(不是所有单词)创建索引?
- c# - Unity:如何在 ScriptableObjects 中使用泛型?
- c# - 是否有一种方法可以以编程方式将多个 RouteAttributes 添加到给定的 ControllerModel