美文网首页
五、Go数组和结构体

五、Go数组和结构体

作者: 屉屉 | 来源:发表于2018-11-16 21:43 被阅读0次

五、Go的数组和结构体

1.数组

数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形、字符串或者自定义类型。

声明数组

var balance [10] float32

初始化数组

var balance = [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}

//或者用...表示不限制大小,根据后面的{}的元素个数自动设置

var balance = [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}

多维数组

var threedim [5][10][4]int

向函数传递数组

方式一

形参设定数组大小:

void myFunction(param [10]int)
{
// dosomething
}

方式二

形参未设定数组大小:

void myFunction(param []int)
{
// dosomething
}

2.结构体

Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。

结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。

声明结构体:

type struct_variable_type struct {
   member definition;
   member definition;
   ...
   member definition;
}

如:

package main
import "fmt"

type Books struct {
   title string
   author string
   subject string
   book_id int
}

func main() {

    // 创建一个新的结构体
    fmt.Println(Books{"Go 语言", "www.runoob.com", "Go 语言教程", 6495407})
    
    // 也可以使用 key => value 格式
    fmt.Println(Books{title: "Go 语言", author: "www.runoob.com", subject: "Go 语言教程", book_id: 6495407})
    
    // 忽略的字段为 0 或 空
   fmt.Println(Books{title: "Go 语言", author: "www.runoob.com"})
}

访问结构体成员:

使用结构体.成员名访问。

Books1.title 输出Go 语言

结构体作为函数参数:

像其他数据类型一样将结构体类型作为参数传递给函数。

func printBook( book Books ) {
   fmt.Printf( "Book title : %s\n", book.title);
   fmt.Printf( "Book author : %s\n", book.author);
   fmt.Printf( "Book subject : %s\n", book.subject);
   fmt.Printf( "Book book_id : %d\n", book.book_id);
}
//可以输出每个结构体的title及其取值。

结构体指针:

可以像其他指针变量一样定义结构体的指针变量。

var struct_pointer *Books

以上定义的指针变量可以存储结构体变量的地址。查看结构体变量地址,可以将 & 符号放置于结构体变量前:

struct_pointer = &Book1;

使用结构体指针访问结构体成员,使用 "." 操作符:

struct_pointer.title;

相关文章

  • 五、Go数组和结构体

    五、Go的数组和结构体 1.数组 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原...

  • golang数据类型

    Go语言中有四种复合数据类型:数组,slice,map,结构体 数组和结构体都是聚合类型,长度固定。而slice和...

  • go2~json和结构体属性首字母大写

    2017.05.22 json和结构体属性首字母大写 go里定义结构体 json.Marshal转成byte数组 ...

  • Go语言探索 - 10(原创)

    上一篇文章主要学习了Go语言的结构体以及结构体指针,本篇文章主要学习Go语言的切片以及Map。 Go语言数组的长度...

  • <>

    数组和切片 切片和数组的区别 数组是属于值类型。结构体,基础类型数据也属于值类型。 注意GO语言对于“传值和传引用...

  • 什么是 cpu cache

    最近阅读 nginx, go 代码时经常看到结构体 cache line 对齐,比如 go timer 全局数组。...

  • swift学习三(类与结构体)

    一、类和结构体对比 二、结构体和枚举是值类型 三、类是引用类型 四、类和结构体的选择 五、字符串、数组、和字典类型...

  • 第10章-结构体

    一、结构体 1.1 什么是结构体 Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数...

  • 结构体数组的定义

    结构体数组的定义 1、先定义结构体类型,再定义结构体数组 2、定义结构体类型的同时定义结构体数组 3、省略结构体类...

  • Golang(十) 结构体

    结构体 什么是结构体 Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。 结...

网友评论

      本文标题:五、Go数组和结构体

      本文链接:https://www.haomeiwen.com/subject/mlyvfqtx.html