相关疑难解决方法(0)

如何确定接口{}值的"真实"类型?

我没有找到使用interface{}类型的好资源.例如

package main

import "fmt"

func weirdFunc(i int) interface{} {
    if i == 0 {
        return "zero"
    }
    return i
}
func main() {
    var i = 5
    var w = weirdFunc(5)

    // this example works!
    if tmp, ok := w.(int); ok {
        i += tmp
    }

    fmt.Println("i =", i)
}
Run Code Online (Sandbox Code Playgroud)

你知道使用Go的好介绍interface{}吗?

具体问题:

  • 我如何获得"真实"类型的w?
  • 有没有办法得到一个类型的字符串表示?
  • 有没有办法使用类型的字符串表示来转换值?

types type-conversion go

105
推荐指数
6
解决办法
9万
查看次数

将map [interface {}] interface {}转换为map [string] string

从一个来源我不能影响我在地图中给出数据,它到达时map[interface {}]interface {}.

我需要处理包含的数据,最好是map[string]string(内部的数据非常适合).

我还需要从数据中生成一个键列表,因为这些键事先是未知的.

我在网上可以找到的大多数类似的问题或多或少地说,这是不可能的,但如果我的地图是m,则fmt.Println(m)显示数据存在,可读map[k0:v0 K1:v1 k2:v2 ... ].

我怎样才能做fmt.Println能做的事情?

interface map go

23
推荐指数
2
解决办法
2万
查看次数

标签 统计

go ×2

interface ×1

map ×1

type-conversion ×1

types ×1