【问题标题】:Go Lang - Interfaces and arrays [closed]Go Lang - 接口和数组 [关闭]
【发布时间】:2014-02-23 20:24:31
【问题描述】:

我有一个我认为类型为“[]interface {}”的变量

  1. 我如何检测它
  2. 转换为数组?

代码如下:

var s string
switch value1 := value1.(type) {
case int:
    s = strconv.Itoa(value1)
case float64:
    s = strconv.FormatFloat(value1, 'f', 0, 64)
//case array:
    //fmt.Printf("array")
default :
    fmt.Printf("\nvalue=v+%",value1)
}

输出是:

value=v+%!(NOVERB)%!(EXTRA []interface {}=

【问题讨论】:

  • 能否正确格式化代码?

标签: arrays interface go


【解决方案1】:

您可以像其他类型一样在类型切换中选择切片。例如:

switch v := value1.(type) {
case []interface{}:
    for _, element := range v {
        fmt.Println(element)
    }
} 

你可以在这里玩这个例子:http://play.golang.org/p/4z9eejp4BL

【讨论】:

  • 很好的答案谢谢!
猜你喜欢
  • 2016-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-09
  • 2017-02-17
  • 1970-01-01
  • 2015-07-21
  • 2013-06-13
相关资源
最近更新 更多