51.笔记go语言——go语言数据结构 - Go语言中文社区

51.笔记go语言——go语言数据结构


51.笔记go语言——go语言数据结构

主要学习go语言中的基本类型,结构,arrays和slices

结构和指针

 [5]byte表示有5个字节,类似C的阵列。

定义:

type Point struct { X, Y int }

表示定义一个简单的结构类型叫做Point,包含2个内存中连接的值。如下

图1

其中Point{10,20}表示一个初始化Point,&Pointer表示一个Pointer的指针,指向Pointer.

继续定义如下:

type Rect1 struct { Min, Max Point }
type Rect2 struct { Min, Max *Point }

如下图2

Rect1是一个有两个Point的结构,Rect2是有两个Pointer指针的结构。

Strings

           如下图3

如图所示,一个string包含2个字节结构,一个指向字符串数据和一个长度。因为string是不可变的,可以让多个strings来共享存储。所以s 是中的指针可以指向相同的字符串。

Slices

Slice类似一个阵列。在内存中,包含3个字节结构包含一个指针指向第一个元素,第二个表示slice长度,第三个表示容量大小。

和string一样,slicing一个阵列不会进行COPY,只是创建一个结构来保持不同的指针、长度和容量。

如下图4

New and Make

           Go语言包含new和make.

new(T)返回一个*T。

           Make(T,args)返回一个一个正常的T,不是一个指针。

           New返回一个指针指向全零的内存,而make返回一个复杂结构。

图5

 

 

 

 

 

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/notbaron/article/details/78168033
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-08-27 15:34:20
  • 阅读 ( 822 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢