无论对象类型如何,如何拆分对象?

我只是使用 ghw 库获取所有系统规范。详细信息可在https://github.com/jaypipes/ghw/#cpu中找到。我想获取 cpu 缓存大小。因此,我需要使用以下我无法执行的代码拆分返回的任何对象。


package main


import (

"fmt"

"strings"


"github.com/jaypipes/ghw"

)


func main() {

    topology, err := ghw.Topology()

    if err != nil {

        fmt.Printf("Error getting topology info: %v", err)

    }


    fmt.Printf("%v\n", topology)


    for _, node := range topology.Nodes {

        fmt.Printf(" %v\n", node)

        for _, cache := range node.Caches {

            info := strings.Split(cache, "\n")

        }

    }

}

当我这样做时,我收到以下错误。


./topology.go:21:25: cannot use cache (type *ghw.MemoryCache) as type string in argument to 

strings.Split

那么如何拆分它并仅使用所需的数据。


素胚勾勒不出你
浏览 120回答 1
1回答

明月笑刀无情

您可以只使用该ghw.MemoryCache.SizeBytes字段:ghw.MemoryCache.SizeBytes是一个整数,包含缓存可以包含的字节数所以不需要拆分:for _, node := range topology.Nodes {    fmt.Printf(" %v\n", node)    for _, cache := range node.Caches {        info := strconv.Itoa(cache.SizeBytes)    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go