当前位置:  首页>> 技术小册>> GO面试指南

在 Go 中,只有部分类型才有对应的指针类型。具体来说,只有那些不可寻址的类型才有指针类型。比如,常量、字符串、字典等类型是不可寻址的,因此它们都有对应的指针类型。而整数、浮点数、布尔值等基本类型都是可寻址的,因此它们没有对应的指针类型。

以下是一个示例代码,展示 Go 中部分类型的指针类型:

  1. package main
  2. import "fmt"
  3. func main() {
  4. var a int = 10
  5. var b *int = &a
  6. fmt.Printf("%T\n", a) // int
  7. fmt.Printf("%T\n", b) // *int
  8. var c string = "hello"
  9. var d *string = &c
  10. fmt.Printf("%T\n", c) // string
  11. fmt.Printf("%T\n", d) // *string
  12. var e map[string]int = map[string]int{"foo": 1, "bar": 2}
  13. var f *map[string]int = &e
  14. fmt.Printf("%T\n", e) // map[string]int
  15. fmt.Printf("%T\n", f) // *map[string]int
  16. var g func() = func() {
  17. fmt.Println("hello world")
  18. }
  19. var h *func() = &g
  20. fmt.Printf("%T\n", g) // func()
  21. fmt.Printf("%T\n", h) // *func()
  22. }

在这个例子中,我们定义了几个不同类型的变量,包括整数、字符串、字典和函数。然后,我们定义了对应的指针类型,并使用 %T 格式化符号打印它们的类型。

需要注意的是,整数、字符串、字典和函数都有对应的指针类型,但是布尔值、浮点数等基本类型则没有对应的指针类型。


该分类下的相关小册推荐: