类型定义和类型别名的使用场景或者注意

来源:9-5 测试http服务器(下)

qq_白澤_0

2020-06-02

这里回顾发现之前老师定义userError为一种新类型

type userError string

而之前也讲过类型别名

type userError = string


直观理解前者是一个新类型,后者是同一个东西不同叫法。

之前老师讲的结构体别名扩展,实际上是类型定义吧,上面的第一种,课程没涉及到上面第二种做法,不太理解第二种go语言设计的意图。

这两个主要用途区别是什么?


写回答

1回答

ccmouse

2020-06-03

同学的理解是正确的。

我之前讲的别名扩展,也是一种类型定义,userError是一个新的类型,它不是stirng。不是那样用=的别名。

=那个一般不用,=就真的是一个别名。就是给类型起一个别的名字。它主要是为了大规模代码重构。我的类型改名,或者我想迁移到另一个api,因为涉及面太广我先起一个别名,让新旧名字同时能工作,再慢慢把旧名字的引用删掉。

0
0

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程