断言类型可以是结构体?

yinwhm12 · 2017-03-13 10:28:37 · 3017 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2017-03-13 10:28:37 的主题,其中的信息可能已经有所发展或是发生改变。

就是通过 e.(type) 得出case中的那个结构体,可以实现?


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3017 次点击  
加入收藏 微博
5 回复  |  直到 2017-03-14 03:42:42
blov
blov · #1 · 8年之前

einterface 就行

yinwhm12
yinwhm12 · #2 · 8年之前
blovblov #1 回复

`e` 是 `interface` 就行

真的?你能给个例子?我新手,拜托了!

blov
blov · #3 · 8年之前
package main

import "fmt"

func main() {
    type Person struct {
        Name string
    }

    var i interface{} = Person{"golang"}

    switch i.(type) {
    case Person:
        fmt.Println(i.(Person).Name)
    default:
    }
}
yinwhm12
yinwhm12 · #4 · 8年之前
blovblov #3 回复

```go package main import "fmt" func main() { type Person struct { Name string } var i interface{} = Person{"golang"} switch i.(type) { case Person: fmt.Println(i.(Person).Name) default: } } ```

谢啦!弄出来了

xiaochuan
xiaochuan · #5 · 8年之前

如果是 用断言 必须 为接口类型可以这么用

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传