Golang自定义类型与类型别名

type myInt int32type myInt = int32,概念并不相同

  1. 自定义类型:type myInt int32

    通过这种方式定义的类型是一个全新的类型 ,这个新类型与int32有相同的底层结构,但是却与int32类型不兼容。

    go 复制代码
    type myInt int32
    go 复制代码
    var a int32 = 5
    var b myInt = a  // 这里会产生编译错误

    尽管myInt的底层类型是int32,但它们在类型系统中是不同的。

  2. 类型别名:type myInt = int32

    类型别名则是给现有类型起一个新的名字,新的名字与原始类型在类型系统中是完全相同的。

    go 复制代码
    type myInt = int32
    go 复制代码
    var a int32 = 5
    var b myInt = a  // 这里不会产生编译错误

    这里myIntint32的别名,所以不会产生任何编译错误。

  3. 总结

    • 自定义类型会创建一个全新的类型,与原始类型在类型系统中是不兼容的。

    • 类型别名则只是给现有类型起一个新名字,与原始类型在类型系统中完全相同。

    • 自定义类型可用于封装或抽象,而类型别名则可以用来确保向后兼容或简化类型名称。

    通过了解这些区别,可以更灵活地使用Go语言的类型系统来满足各种编程需求。

相关推荐
陈随易4 小时前
在 VSCode 里,把项目一键部署到服务器
前端·后端·程序员
Highcharts.js4 小时前
教程:基于 React + Highcharts 构建一个单页应用程序、按需数据拉取与图表渲染
开发语言·前端·数据结构·react.js·前端框架·highcharts·页面应用
鱼樱前端5 小时前
我用 Claude Code 后,编码效率翻 3 倍。但更值钱的是别的。
前端·后端·ai编程
犀利豆5 小时前
Claude code tools 研究系列-开篇(AskUserQuestion)
后端
头发还在的女程序员6 小时前
医院陪诊管理系统怎么选择?——2026 年选型避坑与架构参考
java·开发语言·陪诊系统·陪诊app·医院陪诊陪护
爱写代码的小朋友8 小时前
从零开始学 Win32 API:C++ 窗口编程实战(VS Code + MinGW-w64 命令行详解)
开发语言·c++
果汁华8 小时前
Function Calling 与 Python 实战完整指南
开发语言·网络·python
颜酱8 小时前
06 | 把 meta_config 同步进 MySQL(生成阶段)
前端·人工智能·后端
小小晓.8 小时前
C++:语句和作用域
开发语言·c++
wanderist.9 小时前
Lambda表达式在算法竞赛中的应用
java·开发语言·算法