首页 > 其他分享 >自定义类型和类型别名

自定义类型和类型别名

时间:2022-08-28 17:12:20浏览次数:56  
标签:自定义 int fmt 别名 类型 type

1. 自定义类型

在Go语言中有一些基本的数据类型,如string整型浮点型布尔等数据类型, Go语言中可以使用type关键字来定义自定义类型。type后面跟的是类型, 写方法的时候会用到,比如给int增加一个新方法

自定义类型是定义了一个全新的类型。我们可以基于内置的基本类型定义,也可以通过struct定义。例如:

//将MyInt定义为int类型
type MyInt int

通过type关键字的定义,MyInt就是一种新的类型,它具有int的特性。

type myInt int // 自定义类型和类型别名
func main() {
	var n myInt
	n = 100
	fmt.Println(n)
	fmt.Printf("%T\n", n)
}

out

100
main.myInt

自定义类型,是重新定义一个类型,而类型别名其实就是取一个别的名字,是带=号的,要注意区分!记住类型别名带=号就可以,其他都是自定义类型,且自定义类型用的比较多。

2. 类型别名

类型别名是Go1.9版本添加的新功能。

类型别名规定:TypeAlias只是Type的别名,本质上TypeAlias与Type是同一个类型。就像一个孩子小时候有小名、乳名,上学后用学名,英语老师又会给他起英文名,但这些名字都指的是他本人。

type TypeAlias = Type

我们之前见过的runebyte就是类型别名,他们的定义如下:

type byte = uint8
type rune = int32

看下面的例子

type yourint = int // 类型别名,代码编写过程中生效,运行完就不存在了
func main() {
	var m yourint
	m = 100
	fmt.Println(m)
	fmt.Printf("%T\n", m)  // int

	var c rune  // int32别名,看到变量是字符,而不是数字
	c = '中'
	fmt.Println(c)
	fmt.Printf("%T\n", c)  // int32

}

out

100
int   
20013 
int32

标签:自定义,int,fmt,别名,类型,type
From: https://www.cnblogs.com/sunnybowen/p/16633109.html

相关文章

  • 【算法笔记】一文解决数组类型算法题(1)
    本文主要介绍数据结构中的数组,以及LeetCode题库下面相关题型的分类和解法套路。数组理论概述定义数组是存储在一块连续内存上的,由相同元素集合组成的数据结构。利用索......
  • Spring源码-自定义标签
    一、新建实体类publicclassUserimplementsSerializable{privateStringid;privateStringname;privateIntegerage;publicStringgetId(){ return......
  • Vue3+vite+js 配置别名@报错
    Vue3+vite+js配置别名@报错vue3项目中配置vite.config.js时使用path模块报错,一直警告找不大到path模块原因:path模块是node.js内置的功能,但是node.js本身并不支持ts解决......
  • UE4 C++学习 浅析基本数据类型
    本文只解析一些UE4特有的一些数据类型,一些常用的类型如布尔(Bool),整型(Int)等不再赘述。 UE4的基本数据类型有以下几种:   命名(FName):在C++中,命名被写成FName使用......
  • 通过自定义指令对button进行权限的校验
    通过自定义指令对button进行权限的校验场景:左侧菜单栏通过调接口获取,每一个菜单下的还有该菜单下的button的权限操作,在mentType为2时,该children就是button权限列表1.先获......
  • vue自定义实现虚拟化列表
     1使用<ViualList:size="40":remain="8":dataList="dataList"></ViualList>size:每个列表的高度Heightremain:当前屏幕展示数据个数dataList:当前数据2自定义......
  • 【Java学习Day08】数据类型、变量及字节
    数据类型强类型语言要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用弱类型语言要求变量的使用要符合规定,所有变量都必须先定义后才能使用Java......
  • 基本数据类型与严格模式和约束条件(3)
      整型 分类TINYINTSMALLINTMEDUIMINTINTBIGINT"""以TINYINT是否有符号默认情况下是带符号的超出会如何超出限制只存最大可接......
  • python之数据类型转换
    一、隐式类型转换隐式类型转换-自动完成我们对两种不同类型的数据进行运算,较低数据类型(整数)就会转换为较高数据类型(浮点数)以避免数据丢失num_int=123num_flo=1.2......
  • 支付插件-使用 woocommerce_api_(action) Action 钩子添加自定义 URL 到WooCommerce
    WooCommerce的woocommerce_api_(action) Action钩子可以让插件添加一个自定义回调到一个URL上面,当这个URL被访问的时候,自定义回调中的函数或方法就会执行,这个API......