当前位置: 首页 > news >正文

外贸soho东莞建站直播网站排名

外贸soho东莞建站,直播网站排名,软装设计师主要做什么,厦门高端网站建设8 指针、make、new 8.1 指针(pointer) Go 语言中没有指针操作,只需要记住两个符号即可: & 取内存地址* 根据地址取值 package mainimport "fmt"func main() {a : 18// 获取 a 的地址值并复制给 pp : &a// …

8 指针、make、new

8.1 指针(pointer)

Go 语言中没有指针操作,只需要记住两个符号即可:

  • & 取内存地址
  • * 根据地址取值
package mainimport "fmt"func main() {a := 18// 获取 a 的地址值并复制给 pp := &a//  p 的类型:*int,p 的取值:0xc000018078fmt.Printf("p 的类型:%T,p 的取值:%v\n", p, p)b := *p// b 的类型:int,b 的取值:18fmt.Printf("b 的类型:%T,b 的取值:%v\n", b, b)
}

指针传值示例:

package mainimport "fmt"func main() {a := 10modify1(a)// 10fmt.Println(a)modify2(&a)// 100fmt.Println(a)
}func modify1(x int) {x = 100
}// 需要传入一个 int 变量的地址值
func modify2(x *int) {*x = 100
}

8.2 make 和 new

先看一段代码,

package mainimport "fmt"func main() {var a *int*a = 100fmt.Println(a)var b map[string]intb["xxx"] = 100fmt.Println(b)
}

执行上面的代码会触发 panic (即异常)。错误信息为:panic: runtime error: invalid memory address or nil pointer dereference.——非法的内存地址或者空指针引用。这是因为:

在 Go 语言中,引用类型数据声明之后还必须初始化,初始化的操作就是为其分配内存空间。newmake 的作用就是为引用类型数据分配内存空间。

值类型数据声明之后系统会默认为其分配内存。

8.2.1 new

new 用来构建内存地址类型数据。

package mainimport "fmt"func main() {// 构建一个 int 类型的内存地址a := new(int)*a = 100// a 表示的内存地址:0xc0000b4008 , a 的值:100fmt.Printf("a 表示的内存地址:%p , a 的值:%d\n", a, *a)
}

8.2.2 make

make 也是用于分配内存的, 只用于 slicemap 以及 channel 的内存创建,而且他的返回值就是这三种类型本身,而不是他们的指针。make 函数的函数签名如下:

func make ( t Type, size ...IntegerType) Type

我们在使用 slicemap 以及 channel 时都需要使用 make 进行初始化,然后才可以对他们进行操作。

package mainimport "fmt"func main() {// 声明一个键为 string 类型,值为 int 类型的 mapvar b map[string]int// 通过 make 初始化 map, 并指定其容量为 10b = make(map[string]int, 10)b["xxx"] = 100// map[xxx:100]fmt.Println(b)
}

8.2.3 new 和 make 的区别

  • make 和 new 都是用来申请内存地址的
  • new 通常用于给基本数据类型申请内存,返回的是对应类型的指针,如 *string*int
  • make 专用于给 map、slice、channe 申请内存空间,返回的是对应的类型本身
http://www.hkea.cn/news/10859/

相关文章:

  • 杭州网站维护外包潍坊seo网络推广
  • 北京南站到北京西站六盘水seo
  • 建设工程包括哪几类工程seo排名优化方式方法
  • 自己做的网站怎么接入银联支付搜索引擎推广渠道
  • 11网站建设waocc口碑营销推广
  • 做歌厅广告在哪个网站做好搜狐综合小时报2022113011
  • 做网站软件 wordpage优化绿松石什么意思
  • 美国人做的古文字网站网站收录提交入口
  • 新闻类的网站有哪些类型seo查询优化
  • 网站设计排行百度关键词自然排名优化公司
  • 做网站小程序的客户是怎么找的服装营销方式和手段
  • 2019年建设银行安徽招聘网站网络销售怎么找客源
  • 郴州365网企业seo的措施有哪些
  • 网站建设明薇通网络售后好西地那非片
  • 南宫做网站互联网营销方案
  • 网络维护是什么专业专业关键词优化平台
  • 帮别人设计网站的网站网络营销方法有什么
  • 重庆微网站制作兰州seo优化公司
  • c做网站教程互联网广告代理
  • 云服务器搭建网站教程郑州网络推广公司
  • 湛江建站模板百度排名规则
  • 企业建设网站价格临沂森工木业有限公司
  • 有什么彩票网站做代理好点北京搜索优化排名公司
  • 怎样建设一个英语网站专业seo培训学校
  • 形象类网站市场营销策划包括哪些内容
  • 建立网站需要多少钱萍畜湖南岚鸿首选新网站怎么快速收录
  • 阜南县城乡建设局官方网站设计网站都有哪些
  • 杭州企业建设网站企业百度开户怎么开
  • 十大跨界营销案例seo经验
  • 网站建设内容介绍西安百度推广网站建设