指针基础 - golang版

1、指针

  • 变量是存储值的地方;
  • 指针的值是一个变量的地址;
  • 不是所有的值都有地址,但是所有的变量都有;
  • 使用指针,可以在无须知道变量名字的情况下,间接读取或更新变量的值

2、基础语法

2.1 定义指针

  • Go 语言中,使用 * 符号来定义指针类型;
var ptr *int

2.2 取地址操作符 &

  • 使用 & 符号可以获取一个变量的内存地址;
x := 10
ptr := &x // 将 ptr 指向了变量 x 的内存地址

2.3 解引用操作符 *

  • 使用 * 符号可以获取指针指向的变量的值;
y := *ptr // 获取指针 ptr 指向的变量的值

3、实战用法

3.1 指针作为函数参数

  • 可以将指针作为函数的参数,以便在函数内部修改调用者传递的变量;
func ModifyValueTo100(num int) {
	fmt.Printf("输入 num: %v\n", num)
	modifyValue(&num)
	fmt.Printf("修改后 num: %v\n", num)
}

func modifyValue(ptr *int) {
	*ptr = 100
}

3.2 指针和结构体

  • 结构体字段可以是指针类型,这样可以减少复制大型结构体的开销;
  • 同时可以在函数中修改结构体的字段值;
type Person struct {
    Name string
    Age  int
}

func main() {
    p := &Person{Name: "Alice", Age: 25}
    fmt.Println(p.Name)  // 输出 "Alice"
    p.Name = "Bob"       // 修改结构体字段的值
    fmt.Println(p.Name)  // 输出 "Bob"
}

3.3 指针和接收者

  • 在方法定义中,可以使用指针作为接收者,这样可以在方法内部修改接收者的值;
type Counter struct {
    count int
}

func (c *Counter) Increment() {
    c.count++
}

相关推荐

  1. 指针基础 - golang

    2024-03-17 05:32:05       19 阅读
  2. golang指针介绍

    2024-03-17 05:32:05       30 阅读
  3. Golang 指针使用教程

    2024-03-17 05:32:05       8 阅读
  4. golang指针快速排序

    2024-03-17 05:32:05       17 阅读
  5. Golang基础教程

    2024-03-17 05:32:05       41 阅读
  6. Golang基础-5

    2024-03-17 05:32:05       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-17 05:32:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-17 05:32:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-17 05:32:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-17 05:32:05       18 阅读

热门阅读

  1. linux-centos如何配置临时ip

    2024-03-17 05:32:05       20 阅读
  2. 小程序的写法和vue有啥区别?

    2024-03-17 05:32:05       22 阅读
  3. K8S下微服务平滑发布的一些思考与总结

    2024-03-17 05:32:05       19 阅读
  4. Spring-Kafka笔记整理

    2024-03-17 05:32:05       18 阅读
  5. ZooKeeper

    ZooKeeper

    2024-03-17 05:32:05      16 阅读
  6. Spring Boot集成mapstruct快速入门指南

    2024-03-17 05:32:05       18 阅读
  7. 封装promise请求方式

    2024-03-17 05:32:05       19 阅读
  8. OLLAMA:如何像云端一样运行本地大语言模型

    2024-03-17 05:32:05       20 阅读