Go中的类型别名与类型定义

时间:2019-01-28 13:04:05

标签: go type-alias

我在代码中偶然发现了这种类型的别名:

type LightSource = struct {
  R, G, B, L float32
  X, Y, Z, A float32
  //...
}

我的问题是:为什么要使用类似这样的类型别名来定义struct而不是这样做呢?

type LightSource struct {
  R, G, B, L float32
  //...etc
}

1 个答案:

答案 0 :(得分:6)

在这种情况下,我认为这是错误地完成的-第一种选择“匿名”定义了一个类型,然后为其分配了别名,因此两种情况下的最终结果都是相同的,但是第二种选择仍然是唯一的正确的。

类型别名仅在少数情况下有用,例如正如here所写,它们对于大规模重构很有用。