2016-09-14 4 views
-1

Ich beginne gerade mit Golang und ich bin sehr verwirrt über die Interaktion mit anderen Paketen und die Verwendung von Strukturen. Im Moment versuche ich einfach die von einer Methode generierte Struktur in der gopsutil-Bibliothek zurückzugeben. Insbesondere die Rückkehr der folgenden Funktion: enter link description hereZurückgeben einer Struktur in Golang

Mein Code hierfür ist die folgende:

package main 

import (
    "fmt" 

    "github.com/shirou/gopsutil/cpu" 

) 

func main() { 

    cpu_times = getCpuTime() 
    fmt.Println(cpu_times) 

} 

func getCpuTime() TimesStat { 
    ct, _ := cpu.Times(false) 

    return ct 
} 

Dies gibt TimesStat als undefiniert. Ich habe versucht, ein paar verschiedene syntaktische Variationen zurückzugeben, aber der einzige Rückgabewert, den ich gefunden habe, ist interface{}, was mir die Struktur innerhalb von Klammern (zB [{values...}]) bringt und das führte zu einigen anderen Problemen. Ich kann keine Beispiele dafür finden, was ich zu tun versuche. Jede Hilfe dankbar, danke.

Antwort

5

müssen Sie die Paketnamen vor der Art enthalten, etwa so:

func getCpuTime() []cpu.TimesStat { // with package name before type 
    ct, _ := cpu.Times(false) 

    return ct 
} 

denn das ist ein Stück cpu.TimesStat, haben Sie wahrscheinlich einen Index in der aufrufenden Funktion hinzugefügt werden sollen oder die Funktion ändern, um nur Zurückgeben einer einzelnen cpu.TimesStat. (Danke an @algrebre)

+2

[cpu # Times] (https://godoc.org/github.com/shirou/gopsutil/cpu#Times) liefert '([] TimesStat, error)' so 'getCpuTime() 'sollte' [] cpu.TimeStat' zurückgeben. Ich kann nicht so eine kleine Bearbeitung machen, da es eine Zwei-Zeichen-Einfügung ist. – algrebe

+0

mit Kommentar geändert, Danke @algrebe! –

Verwandte Themen