Go语言中文网 为您找到相关结果 2 个
delve調試工具程序stdin issue
delve調試工具不支持程序stdin輸入,怎解決? 當程序運行到要求輸入時,delve就一直停在那裡不動... 有人解決過嗎...阅读全文
最新评论
- WangWangZhou1天之前在 Go每日一题(23) 中评论### **正确答案** - **A. `p.name`** - **C. `(*p).name`** --- ### **详细解析** #### **1. `p.name`** - 在 Go 语言中,如果 `p` 是一个指针变量,可以直接通过 `p.name` 访问其成员变量。 - Go 语言会自动解引用指针,因此不需要显式使用 `*` 操作符。 - 示例: ```go type Person struct { name string } func main() { p := &Person{name: "Alice"} fmt.Println(p.name) // 输出: Alice } ``` #### **2. `(*p).name`** - 这是传统的指针解引用方式,通过 `*p` 获取指针指向的结构体,然后访问其成员变量。 - 示例: ```go type Person struct { name string } func main() { p := &Person{name: "Alice"} fmt.Println((*p).name) // 输出: Alice } ``` --- #### **错误选项解析** #### **B. `(&p).name`** - `&p` 表示获取指针 `p` 的地址,即指向指针的指针。 - 这种方式是错误的,因为 `&p` 是一个指向指针的指针,而不是指向结构体的指针。 - 示例: ```go type Person struct { name string } func main() { p := &Person{name: "Alice"} fmt.Println((&p).name) // 编译错误: (&p).name undefined } ``` #### **D. `p->name`** - `p->name` 是 C/C++ 语言中的语法,用于通过指针访问成员变量。 - Go 语言中没有 `->` 操作符,因此这种方式是错误的。 - 示例: ```go type Person struct { name string } func main() { p := &Person{name: "Alice"} fmt.Println(p->name) // 编译错误: 语法错误 } ``` --- ### **总结** - 在 Go 语言中,通过指针变量 `p` 访问其成员变量 `name` 的正确方式是: - **`p.name`**(推荐,Go 语言会自动解引用指针)。 - **`(*p).name`**(显式解引用指针)。 - 错误的方式包括: - `(&p).name`(获取指针的地址,无意义)。 - `p->name`(Go 语言不支持 `->` 操作符)。
- swiftR2天之前在 推荐你认为好的Go资源 中评论免费临时邮箱 [Temap Mail](https://snapmail100.com) 访问地址: [https://snapmail100.com](https://snapmail100.com)
- LIGUANGYAO3天之前在 [go 面试] 接口测试的方法与技巧 中评论学习了,能下载[系统源码](http://doofuu.com/)吗,有go开发的[小程序案例](http://doofuu.com/article/4156206.html)吗,或者能[免费下载源码](https://free.doofuu.com)能也行