热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

go判断变量类型、别名类型

判断变量类型packagemainimport(fmt)varcontainer[]string{zero,one,two}funcmain(){contain

判断变量类型

package mainimport ("fmt"
)var container = []string{"zero", "one", "two"}func main(){container := map[int]string{0: "zero", 1: "one", 2: "two"}// 方式 1// interface{}(container):将 container 变量转换为空接口// .([]string):判断 container 的类型是否为切片类型 []string// 返回值 value:类型转换后的值,// 返回值 ok:断言是否成功_, ok1 := interface{}(container).([]string)_, ok2 := interface{}(container).(map[int]string)if(!(ok1 || ok2)){fmt.Printf("Error: unsupported container type: %T\n", container)return}fmt.Printf("The element is %q. (container type: %T)\n", container[1], container)// 方式 2elem, err := getElement(container)if err != nil {fmt.Printf("Error: %s\n", err)return}fmt.Printf("The element is %q. (container type: %T)\n", elem, container)
}func getElement(containerI interface{})(elem string, err error){switch t := containerI.(type){case []string:elem = t[1]case map[int]string:elem = t[1]default:err = fmt.Errorf("unsupported container type: %T", containerI)return}return
}

在这里插入图片描述
别名类型

package mainfunc main(){type MyString1 = string // MyString1 是 string 类型的别名类型type MyString2 string // 没有等号,MyString2 与 string 类型不同str := "BCD"myStr1 := MyString1(str) // 将 str 转换为类型 MyStringmyStr2 := MyString2(str)myStr1 = strmyStr2 = str // 这里的赋值不合法,会引发编译错误。
}

在这里插入图片描述


推荐阅读
author-avatar
清春无悔396
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有