switch v := v.(type) 求解

DonWang · · 1588 次点击 · 开始浏览    置顶

```go package golang import ( "fmt" "testing" ) func valType(v interface{}) { switch v := v.(type) { case *int: fmt.Println("*int", v == nil) case int: fmt.Println("int", v) } } func valType2(v interface{}) { switch v := v.(type) { case *int, *string: fmt.Println("*int or *string", v == nil) // 为什么不为nil case int: fmt.Println("int", v) } } func TestValType(t *testing.T) { var v *int valType(v) valType2(v) var s *string valType2(s) } ```

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

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

1588 次点击  
加入收藏 微博
13 回复  |  直到 2022-05-30 09:54:15
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传