go学习-自定义类型和类别名称
1、自定义类型用法
package main
import "fmt"
//自定义类型code相当于对象的写法
type Code int
const (
SEVICERROR Code = 100
NETERROR Code = 1002
SUCCESS Code = 1003
UDEFINE Code = 1004
)
//自定义类型code相当于对象的写法
func (code Code) getMsg() (msg string) {
switch code {
case SEVICERROR:
return "服务异常"
case NETERROR:
return "网络异常"
case SUCCESS:
return "成功"
}
return "未知异常"
}
func (code Code) ok() (c Code, msg string) {
return code, code.getMsg()
}
func webService(name string) (code Code, msg string) {
if name == "1" {
return SEVICERROR.ok()
}
if name == "2" {
return NETERROR.ok()
}
if name == "3" {
return SUCCESS.ok()
}
return UDEFINE.ok()
}
func main() {
fmt.Println(webService("2"))
}
2、自定义类型和自定义类型别名
ype MyCode int//自定义类型
type AliaCode = int//自定义类型别名
const myCode MyCode = 1
const aliaCode AliaCode = 2
func main() {
//fmt.Println(webService("2"))
//自定义类型别名和自定义类型打印
fmt.Printf("%v,%T\n", myCode, myCode)//1,main.MyCode
fmt.Printf("%v,%T\n", aliaCode, aliaCode)//2,int
//类型比较
if aliaCode==AliaCode(myCode){
}
if myCode==MyCode(aliaCode){
}
}
3、注意,必须定义为const常量才不报错
更多推荐


所有评论(0)