我想根据字符串索引某些频道。我正在使用地图,但它不允许我为其分配频道。我一直在“恐慌:分配到零地图”,我错过了什么?
jQuery("#loginButton").click(function(e){
e.preventDefault();
jQuery.ajax({type: "POST",
dataType: "json",
crossDomain: true,
xhrFields: {
withCredentials: true
},
url: "http://example.com/wp-admin/admin-ajax.php?action=login",
data: {
log: jQuery("#username").val(), pwd: jQuery("#password").val(),remember: false, },
success:function(result){
console.log(result);
}
});
});
答案 0 :(得分:8)
您需要先初始化地图。类似的东西:
things := make(map[string](chan int))
另一件事,你正在发送并试图从无缓冲的频道消费,因此该程序将陷入僵局。因此可以使用缓冲通道或在goroutine中发送/使用。
我在这里使用了一个缓冲通道:
package main
import "fmt"
func main() {
things := make(map[string](chan int))
things["stuff"] = make(chan int, 2)
things["stuff"] <- 2
mything := <-things["stuff"]
fmt.Printf("my thing: %d", mything)
}
游乐场链接:https://play.golang.org/p/DV_taMtse5
make(chan int, 2)
部分使缓冲区长度为2缓冲通道。在此处阅读更多相关信息:https://tour.golang.org/concurrency/3