首页 > 其他 > 详细

Go_01_自定义类型&类型别名

时间:2021-08-11 15:40:26      阅读:10      评论:0      收藏:0      [点我收藏+]
package main

import "fmt"

// 1、定义类型别名
// 类似Linux的alias命令,只是为了代码可读性或者简写
// go语言编译的时候并不会产生新的类型
type str = string

// 2、自定义类型
// 产生一个新的类型,不破坏已有的类型,并可以为之扩充方法
type Dict map[string]interface{}

// 为自定义Dict类型添加一个push方法
func (d Dict) PushItem(key str, value interface{}) {
	d[key] = value
}

// 为自定义Dict类型添加一个get方法
func (d Dict) GetDefault(key str, defaultValue interface{}) interface{} {
	if value, ok := d[key]; ok {
		return value
	}
	return defaultValue
}

// 3、自定义函数类型 相同类型个数参数,相同类型返回值 就是同一个函数类型
type HandleFunc func(dict *Dict) str

func main() {
	var name str
	dict := Dict{}
	dict.PushItem("name", "lzh")
	fmt.Printf("%T", dict)
	fmt.Printf("%T", name)
	fmt.Println(dict.GetDefault("lzh", "害孩子"))
}

Go_01_自定义类型&类型别名

原文:https://www.cnblogs.com/carp-li/p/15127546.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!