go语言学习笔记 — 基础 — 基本语法 — 类型相关(1):类型定义与类型别名

类型别名主要用于go代码升级、迁移中,类型的兼容性问题。这解决了代码重构中最麻烦的类型名变更问题。


1. 类型定义与类型别名

  • 类型定义

写法:

type TypeDef Type

栗子:

type byte uint8

type rune int32
  • 类型别名

写法:

type TypeAlias = Type

栗子:

type byte = uint8

type rune = int32

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


2. 区分类型定义与类型别名

  • 类型别名与类型定义的区别

类型别名与类型定义表面上看只有一个等号的差异,实际的区别有

1)将TypeDef类型定义为Type,TypeDef会形成一种新的类型,TypeDef本身依然具备Type的特性

2)将Type类型别名为TypeAlias,使用时,TypeAlias与Type等效

3)TypeAlias类型只会在代码中存在,编译完成时,不会再有TypeAlias类型

package main

import (
	"fmt"
	"testing"
)

// 把NewInt类型定义为int
type NewInt int

// 为int取一个别名IntAlias
type IntAlias = int

func main() 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值