我是靠谱客的博主 想人陪御姐,最近开发中收集的这篇文章主要介绍go语言中的Invalid indirect of ‘(p1).name‘ (type ‘string‘)错误,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
代码:
package main
import "fmt"
type Student struct {
name string
age int
}
func main() {
//new函数
//分配内存
//设置零值
//返回指针(重要)
num :=new(int) //是一个指针
fmt.Println(num,*num)
p1 := new(Student)
fmt.Println(p1,*p1)
p1.name = "123"
fmt.Println(p1.name)
fmt.Println(p1,*p1)
fmt.Println(p1.name,*p1.name)
}
输出:
&{ 0} { 0}
&{han 0} {han 0}
han
将最后一行改成
fmt.Println(*p1.name)
报错
invalid indirect of p1.name (type string)
正确方法:
fmt.Println((*p1).name)
以括号分割即可。
总结:
- new函数返回的是一块内存的指针
- p1或者*p1都可以实现对属性的访问,但是要注意括号、
最后
以上就是想人陪御姐为你收集整理的go语言中的Invalid indirect of ‘(p1).name‘ (type ‘string‘)错误的全部内容,希望文章能够帮你解决go语言中的Invalid indirect of ‘(p1).name‘ (type ‘string‘)错误所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复