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常量才不报错

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐