在Golang中返回一个结构

时间:2016-09-14 12:50:13

标签: oop go struct

我刚刚开始使用Golang,我对与其他软件包交互和使用结构非常困惑。现在我只是试图返回由gopsutil库中的方法生成的结构。具体来说,返回以下函数:enter link description here

我的代码如下:

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
}

这将返回TimesStat未定义。我尝试返回一些不同的语法变体,但是我发现编译的唯一返回值是interface{},这会得到括号内的结构(例如[{values...}])并导致其他一些问题。我似乎无法找到任何我想要做的例子。任何帮助表示感谢。

1 个答案:

答案 0 :(得分:7)

您需要在类型之前包含包名称,如下所示:

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

    return ct
}

因为那是cpu.TimesStat的一个片段,你可能想在调用函数中添加一个索引,或者将函数更改为只返回一个cpu.TimesStat。 (感谢@algrebre)