MST

星途 面试题库

面试题:Go语言中类型相同性判断基础应用

在Go语言中,给定两个结构体类型 `type A struct { Name string }` 和 `type B struct { Name string }`,请判断它们是否是相同类型,并说明原因。若想让它们作为相同类型处理,应该如何修改代码?
37.5万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
  1. 是否是相同类型及原因
    • 在Go语言中,type A struct { Name string }type B struct { Name string } 不是相同类型。
    • 原因是Go语言中结构体类型不仅取决于其内部字段的组成,还取决于结构体类型的定义本身。即使两个结构体具有相同的字段列表,但它们是不同的类型定义,所以是不同的类型。
  2. 修改代码使其作为相同类型处理
    • 可以将其中一个结构体类型定义为另一个的别名。例如:
    type A struct {
        Name string
    }
    type B = A
    
    • 这样 AB 就是相同类型了,因为 B 现在是 A 的别名。