面试题答案
一键面试- MyInt 和 YourInt 是否属于相同类型:
- MyInt 和 YourInt 不属于相同类型。虽然它们底层类型都是
int
,但 Go 语言中通过type
关键字定义的新类型,即使底层类型相同,它们也是不同的类型。这是因为 Go 语言的类型系统对这种自定义类型进行了区分,以提供更严格的类型安全。
- MyInt 和 YourInt 不属于相同类型。虽然它们底层类型都是
- 能否直接传入 MyInt 类型的变量作为
Add
函数参数:- 不能直接传入 MyInt 类型的变量作为
Add
函数的参数。因为Add
函数期望的参数类型是int
,而 MyInt 是与int
不同的类型。要使用 MyInt 类型的变量调用Add
函数,需要先将 MyInt 类型的值显式转换为int
类型。例如:
- 不能直接传入 MyInt 类型的变量作为
package main
import "fmt"
type MyInt int
func Add(a, b int) int {
return a + b
}
func main() {
var myA MyInt = 5
result := Add(int(myA), 3)
fmt.Println(result)
}