我是靠谱客的博主 想人陪御姐,最近开发中收集的这篇文章主要介绍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‘)错误所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部