-
akka还是类似的golang替代支持分布式并发?
所属栏目:[大数据] 日期:2020-12-16 热度:150
我知道golang是非常擅长并发的内置支持,但在我看来,它们没有分布,所以框架/库允许我们在分布式环境中编写生产者/消费者应用程序。 如果要在分布式程序中使用Go的通道概念,可以查看 Go Circuit框架。 它提供了运行多进程程序(可能分布在多台机器上)的框架[详细]
-
golang:获取当前的函数名称范围
所属栏目:[大数据] 日期:2020-12-16 热度:179
为了跟踪目的,我想打印出当前的函数名,比如gcc中的__FUNCTION__宏。 所以当我有一个功能 func foo () { trace()} 它会自动打印输入foo()…或类似的东西。 套餐 runtime是你的朋友: func trace() { pc := make([]uintptr,10) // at least 1 entry needed r[详细]
-
golang <转>Go语言struct tag介绍
所属栏目:[大数据] 日期:2020-12-16 热度:79
一、tag说明 先介绍一下``(反引号):反引号用来创建 原生的字符串字面量 ,这些字符串可能由多行组成(不支持任何转义序列),原生的字符串字面量多用于书写多行消息、HTML以及正则表达式。 在处理json格式字符串的时候,经常会看到声明struct结构的时候,属性[详细]
-
漂亮的印刷golang变量
所属栏目:[大数据] 日期:2020-12-16 热度:74
在高隆有Ruby的awesome_print吗? 例如在红宝石你可以写: require 'ap'x = {a:1,b:2} // also works for classap x 输出将是: { "a" = 1,"b" = 2} 最近我发现的是Printf(“%#v”,x) 如果您的目标是避免导入第三方软件包,则您的其他选项是使用 json.Mars[详细]
-
并发 – Golang:匿名结构和空结构
所属栏目:[大数据] 日期:2020-12-16 热度:158
http://play.golang.org/p/vhaKi5uVmm package mainimport "fmt"var battle = make(chan string)func warrior(name string,done chan struct{}) { select { case opponent := -battle: fmt.Printf("%s beat %sn",name,opponent) case battle - name: // I l[详细]
-
使用指针定义golang结构函数
所属栏目:[大数据] 日期:2020-12-16 热度:162
有人向我解释为什么附加到数组的工作原理: func (s *Sample) Append(name string) { d := Stuff{ name: name,} s.data = append(s.data,d)} Full code here 但不是当你这样做: func (s Sample) Append(name string) { d := Stuff{ name: name,d)} 有什么理[详细]
-
在golang中使用template.ParseFiles的多个文件
所属栏目:[大数据] 日期:2020-12-16 热度:72
例如,我有 package mainimport "html/template"import "net/http"func handler(w http.ResponseWriter,r *http.Request) { t,_ := template.ParseFiles("header.html","footer.html") t.Execute(w,map[string] string {"Title": "My title","Body": "Hi thi[详细]
-
用golang解压文件的简单方法
所属栏目:[大数据] 日期:2020-12-16 热度:168
有没有一个简单的方式来解压文件与golang? 现在我的代码是: func Unzip(src,dest string) error { r,err := zip.OpenReader(src) if err != nil { return err } defer r.Close() for _,f := range r.File { rc,err := f.Open() if err != nil { return err[详细]
-
字典 – golang – 如何初始化一个结构中的地图字段?
所属栏目:[大数据] 日期:2020-12-16 热度:131
我对初始化包含地图的结构体的最佳方式感到困惑。运行此代码会产生panic:运行时错误:分配给nil map中的条目: package maintype Vertex struct { label string} type Graph struct { connections map[Vertex][]Vertex} func main() { v1 := Vertex{"v1"} v[详细]
-
Go,Golang:访问字符串作为字符值
所属栏目:[大数据] 日期:2020-12-16 热度:114
http://play.golang.org/p/ZsALO8oF3W 我想要遍历一个字符串并返回字符值。如何,不返回每个字母的数值,并返回实际的字符? 现在我得到这个 0 72 72 1 101 101 2 108 108 3 108 108 4 111 111 我想要的输出是 0 h h 1 e e 2 l l 3 l l 4 o o package main i[详细]
-
Golang大猩猩mux与http.FileServer返回404
所属栏目:[大数据] 日期:2020-12-16 热度:112
我看到的问题是我正在尝试使用http.FileServer与Gorilla mux Router.Handle函数。 这不起作用(图像返回404).. myRouter := mux.NewRouter()myRouter.Handle("/images/",http.StripPrefix("/images/",http.FileServer(http.Dir(HomeFolder + "images/")))) 这[详细]
-
单元测试 – Golang:测试和工作目录
所属栏目:[大数据] 日期:2020-12-16 热度:192
我在Go中为我的应用程序编写了一些单元测试。但测试失败,因为它找不到配置文件。通常,二进制文件在路径conf / * .conf下查找工作目录中的配置文件。 我认为浏览到具有conf /并运行go test的目录会解决它,但它仍然报告文件系统找不到指定的路径。 如何告诉[详细]
-
哪个是在Golang中初始化地图的更好方法? [重复]
所属栏目:[大数据] 日期:2020-12-16 热度:78
参见英文答案 Creating map with/without make1个答案由于地图是参考类型。有什么区别:? m := make(map[string]int32) 和 m := map[string]int32{} 一个允许您初始化容量,一个允许您初始化值: // Initializes a map with space for 15 itemsm := make(ma[详细]
-
如何在Golang中执行一个简单的Windows DOS命令?
所属栏目:[大数据] 日期:2020-12-16 热度:130
有人可以告诉我如何在Go中运行一个简单的DOS命令吗? 当运行这样的东西: exec.Command("del","c:aaa.txt") 输出为: “del:%path%中找不到可执行文件” 再次,我认为这是Go中的简单任务,但经过2小时的搜索,我没有找到例子。有人也可以告诉我我在做错[详细]
-
如何在Golang的字节缓冲区中解压缩各种形式的整数?
所属栏目:[大数据] 日期:2020-12-16 热度:82
我需要在字节缓冲区中提取各种字段。我想出了这个解决方案: func (fs *FileSystem) readSB() { // fs.f is a *os.File buf := make([]byte,1024) fs.f.ReadAt(buf,1024) // Offset: type var p *bytes.Buffer // 0: uint32 p = bytes.NewBuffer(buf[0:]) bi[详细]
-
Golang正则表达式替换什么都不做
所属栏目:[大数据] 日期:2020-12-16 热度:146
我想用破折号代替任何非字母数字字符序列。我写的片段在下面。然而,它不工作,我完全无知为什么。任何人都可以解释为什么片段的行为不像我期望的那样,这样做是正确的方法呢? package mainimport ( "fmt" "regexp" "strings")func main() { reg,_ := regex[详细]
-
将任意Golang接口转换为字节数组
所属栏目:[大数据] 日期:2020-12-16 热度:136
我试图写一个将接受所有数据类型的哈希值。一旦处于函数中,我将数据作为字节数组处理。我无法弄清楚如何将任意界面{}投射到一个字节数组中。 我尝试使用二进制包,但它似乎取决于传入的数据类型。Write()fn (docs)的一个参数需要知道参数的字节顺序。 所有[详细]
-
如何在golang中转换ISO 8601时间?
所属栏目:[大数据] 日期:2020-12-16 热度:147
golang中以下shell命令的等效代码是什么? date -u%Y-%m-%dT%T%z package mainimport ( "time" "fmt")func main(){ fmt.Println(time.Now().UTC().Format(time.RFC3339))} golang Time.Format[详细]
-
可以考虑的时间。在golang中的时间
所属栏目:[大数据] 日期:2020-12-16 热度:135
我有一个结构,我打算用数据库记录填充,其中一个日期时间列可以为空: type Reminder struct { Id int CreatedAt time.Time RemindedAt *time.Time SenderId int ReceiverId int} 由于指针可以为nil,因此我将RemindedAt设为指针,但这将要求代码知道At变量[详细]
-
Golang:何时使用指针[重复]
所属栏目:[大数据] 日期:2020-12-16 热度:164
参见英文答案 Pointers vs. values in parameters and return values1个答案我是Go语言的新手,并且只有很少的C / C背景,所以我很自然地想到何时使用指针以及何时不使用指针。虽然这个问题可能被认为是开放式的,但我想知道何时返回结构以及何时返回指针的[详细]
-
如何找出哪些类型在Golang中实现哪个接口?
所属栏目:[大数据] 日期:2020-12-16 热度:123
例: 在包io中,类型 ByteReader 定义了一个包装方法ReadByte()的接口(c字节,错误错误). 找出标准库中哪些类型(即listed here in golang.org/pkg)满足此接口的最简单方法是什么? 这只是经验问题还是有其他帮助? 主要是通过经验.无论如何,例如: jnml@fsc-r6[详细]
-
在golang中将uint64转换为字符串
所属栏目:[大数据] 日期:2020-12-16 热度:57
我试图用uint64打印一个字符串,但我没有使用strconv方法的组合。 log.Println("The amount is: " + strconv.Itoa((charge.Amount))) 给我: 不能使用charge.Amount(类型uint64)作为strconv.Itoa参数中的int类型 我该如何打印这个字符串? strconv.Itoa() 期[详细]
-
如何使用Golang获取程序的所有依赖项文件
所属栏目:[大数据] 日期:2020-12-16 热度:116
我在golang中创建一个程序,在完成代码之后,如果我想在其他PC或VM上运行此代码,那么它不会获得所有依赖包文件。我怎样才能获得所有依赖文件? 您可以在完成程序的本地PC中使用godep save。 godep save为您收集所有依赖文件。当您移动到其他PC时,只需使用[详细]
-
如何在golang中将消息记录到控制台和文件?
所属栏目:[大数据] 日期:2020-12-16 热度:132
我可以将所有消息定向到log.txt文件: logFile,err := os.OpenFile("log.txt",os.O_CREATE | os.O_APPEND | os.O_RDWR,0666)if err != nil { panic(err)}log.SetOutput(logFile) 但是如何在控制台中获取日志消息呢? 使用 io.MultiWriter MultiWriter create[详细]
-
Golang MongoDB嵌入式(在另一个struct中嵌入一个struct)
所属栏目:[大数据] 日期:2020-12-16 热度:192
假设,我运行API,当用户对用户资源发出GET请求时,我会将相关字段作为JSON返回 type User struct { Id bson.ObjectId `json:"id,omitempty" bson:"_id,omitempty"` Name string `json:"name,omitempty" bson:"name,omitempty"` Secret string `json:"-,omitemp[详细]
