如何使用函數參數的方法?使用指針作爲函數的參數
func writeToInflux(c interface{}, host string, service string, state string) bool {
fmt.Println(reflect.TypeOf(c), host, service)
bp, e := client.NewBatchPoints(client.BatchPointsConfig{
Database: database,
Precision: "us",
})
if e != nil {
log.Print(e)
}
tags := map[string]string{
"host": host,
"service": service,
}
fields := map[string]interface{}{
"state": state,
}
pt, err := client.NewPoint("mon", tags, fields, time.Now())
if err != nil {
log.Print(err)
}
bp.AddPoint(pt)
if err := c.Write(bp); err != nil {
log.Print("write failed " + err)
}
return true
}
func handler(w http.ResponseWriter, r *http.Request) {
c, err := client.NewHTTPClient(client.HTTPConfig{
Addr: "http://10.x.x.x:8086",
Username: username,
Password: password,
})
if err != nil {
log.Print(err)
}
a := strings.Split(r.URL.Path, "/")
writeToInflux(c, a[3], a[4], a[5])
}
在這個例子中,我不能使用c變量的參數,或者可能有另一個選項使用c作爲參數的功能?
爲什麼'C'在'writeToInflux'的'接口{}'?出於某種原因,您是否需要將多種類型傳遞給該函數?如果你把'c'設爲正確的類型,它就會起作用。 – JimB