加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
hello.go 1.11 KB
一键复制 编辑 原始数据 按行查看 历史
许根银 提交于 2024-09-02 00:29 . feat:关于 getPointValue 方法
package main
//import (
// "fmt"
//)
//
//type s struct {
// name string
//}
//
///*
//getPointValue 返回指向当前结构体的指针。
//这个方法主要用于解决指针字段访问的语法复杂性问题。
//
//使用场景:
//1. 对于普通结构体值 `s`,可以直接通过 `s.name` 访问字段值。
//2. 对于结构体指针 `s`,访问字段值时可能遇到以下问题:
// - 使用指针语法糖 `s.name`,虽然与结构体值访问一致,但在复杂表达式中可能导致混淆。
// - `*s.name` 会被 Go 编译器解释为 `*(s.name)`,这会导致语法错误,因为 `s.name` 不是有效表达式。
// - `(*s).name` 虽然明确,但在实际使用中显得过于繁琐。
//
//`getPointValue` 方法提供了一种统一且简洁的方式来访问结构体字段,避免了上述问题。通过调用 `s.getPointValue().name`,可以更清晰地获取字段值。
//*/
//
//func (s s) getPointValue() *s {
// return &s
//}
//
//func main() {
// var aaa = s{
// name: "123",
// }
// var bbb = &aaa
// bbb.name = "999"
// fmt.Println(bbb)
//
// fmt.Println(aaa.getPointValue().name)
//}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化