Oop 返回Golang中的结构

Oop 返回Golang中的结构,oop,go,struct,Oop,Go,Struct,我只是从Golang开始,我对与其他包交互和使用结构感到非常困惑。现在,我只是尝试返回由gopsutil库中的方法生成的结构。具体而言,返回以下函数: 我的代码如下: package main import ( "fmt" "github.com/shirou/gopsutil/cpu" ) func main() { cpu_times = getCpuTime() fmt.Println(cpu_times) } func getCpuTime(

我只是从Golang开始,我对与其他包交互和使用结构感到非常困惑。现在,我只是尝试返回由gopsutil库中的方法生成的结构。具体而言,返回以下函数:

我的代码如下:

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
}

这将返回未定义的
timestat
。我尝试返回一些不同的语法变体,但是我发现编译的唯一返回值是
接口{}
,它将结构放在括号内(例如
[{values…}]
),这导致了一些其他问题。我似乎找不到任何我想做的事情的例子。非常感谢您的帮助。

您需要在键入之前包含程序包名称,如下所示:

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

    return ct
}

由于这是
cpu.TimesStat
的一部分,您可能希望在调用函数中添加一个索引,或者将函数更改为只返回一个
cpu.TimesStat
。(感谢@algrebre)

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

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

    return ct
}

由于这是
cpu.TimesStat
的一部分,您可能希望在调用函数中添加一个索引,或者将函数更改为只返回一个
cpu.TimesStat
。(感谢@algrebre)

返回
([]TimeStat,error)
因此
getCpuTime()
应该返回
[]cpu.TimeStat
。我不能做这么小的编辑,因为它是一个两个字符的插入。更改了评论,谢谢@algrebe!返回
([]TimeStat,error)
因此
getCpuTime()
应该返回
[]cpu.TimeStat
。我不能做这么小的编辑,因为它是一个两个字符的插入。更改了评论,谢谢@algrebe!