首页 > 其他分享 >Go 语言结构体

Go 语言结构体

时间:2023-08-14 19:45:09浏览次数:40  
标签:语言 Book fmt Book1 Book2 book Go id 结构

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

定义结构体

结构体定义需要使用 type 和 struct 语句。struct 语句定义一个新的数据类型,结构体中有一个或多个成员。type 语句设定了结构体的名称

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() {
var Book1 Books /* 声明 Book1 为 Books 类型 */
var Book2 Books /* 声明 Book2 为 Books 类型 */

/* book 1 描述 */
Book1.title = "Go 语言"
Book1.author = "www.w3cschool.cn"
Book1.subject = "Go 语言教程"
Book1.book_id = 6495407

/* book 2 描述 */
Book2.title = "Python 教程"
Book2.author = "www.w3cschool.cn"
Book2.subject = "Python 语言教程"
Book2.book_id = 6495700

/* 打印 Book1 信息 */
fmt.Printf( "Book 1 title : %s\n", Book1.title)
fmt.Printf( "Book 1 author : %s\n", Book1.author)
fmt.Printf( "Book 1 subject : %s\n", Book1.subject)
fmt.Printf( "Book 1 book_id : %d\n", Book1.book_id)

/* 打印 Book2 信息 */
fmt.Printf( "Book 2 title : %s\n", Book2.title)
fmt.Printf( "Book 2 author : %s\n", Book2.author)
fmt.Printf( "Book 2 subject : %s\n", Book2.subject)
fmt.Printf( "Book 2 book_id : %d\n", Book2.book_id)
}

 

结构体作为函数参数

package main

import "fmt"

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

func main() {
var Book1 Books /* 声明 Book1 为 Books 类型 */
var Book2 Books /* 声明 Book2 为 Books 类型 */

/* book 1 描述 */
Book1.title = "Go 语言"
Book1.author = "www.w3cschool.cn"
Book1.subject = "Go 语言教程"
Book1.book_id = 6495407

/* book 2 描述 */
Book2.title = "Python 教程"
Book2.author = "www.w3cschool.cn"
Book2.subject = "Python 语言教程"
Book2.book_id = 6495700

/* 打印 Book1 信息 */
printBook(Book1)

/* 打印 Book2 信息 */
printBook(Book2)
}

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)
}

 

结构体指针

package main

import "fmt"

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

func main() {
var Book1 Books /* Declare Book1 of type Book */
var Book2 Books /* Declare Book2 of type Book */

/* book 1 描述 */
Book1.title = "Go 语言"
Book1.author = "www.w3cschool.cn"
Book1.subject = "Go 语言教程"
Book1.book_id = 6495407

/* book 2 描述 */
Book2.title = "Python 教程"
Book2.author = "www.w3cschool.cn"
Book2.subject = "Python 语言教程"
Book2.book_id = 6495700

/* 打印 Book1 信息 */
printBook(&Book1)

/* 打印 Book2 信息 */
printBook(&Book2)
}
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)
}

标签:语言,Book,fmt,Book1,Book2,book,Go,id,结构
From: https://www.cnblogs.com/fczlm/p/17629546.html

相关文章

  • Golang之旅——Defer
    defer首先来看一下官方的解析:Adeferredfunction’sargumentsareevaluatedwhenthedeferstatementisevaluated.DeferredfunctioncallsareexecutedinLastInFirstOutorderafterthesurroundingfunctionreturns.Deferredfunctionsmayreadandassign......
  • 突然让做性能测试?试试RunnerGo
    当前,性能测试已经是一名软件测试工程师必须要了解,甚至熟练使用的一项技能了,在工作时可能每次发版都要跑一遍性能,跑一遍自动化。性能测试入门容易,深入则需要太多的知识量,今天这篇文章给大家带来:怎么入门性能测试,怎么样去深入性能测试。突然让做性能测试怎么办?日常工作中,项目改造或项......
  • Go 语言指针
    变量是一种使用方便的占位符,用于引用计算机内存地址。Go语言的取地址符是&,放到一个变量前使用就会返回相应变量的内存地址。packagemainimport"fmt"funcmain(){varaint=10fmt.Printf("变量的地址:%x\n",&a)}什么是指针一个指针变量可以指向任何一个......
  • 线性表【数据结构学习-青岛大学王卓老师】
    https://www.bilibili.com/video/BV1qz4y1p767/线性表线性表的初始化(顺序表)StatusInitList(SqList&L){L.elem=(ElemType*)malloc(sizeof(ElemType)*MAXSIZE);if(!L.elem)exit(OVERFLOW);L.length=0;returnOK;}线性表的销毁voi......
  • vue3 使用 vue-i18n 配置多语言环境
    1.插件地址:VueI18n官方文档GitHub地址2.安装:在Vue之后引入vue-i18n,它会自动安装:<scriptsrc="https://unpkg.com/vue/dist/vue.js"></script><scriptsrc="https://unpkg.com/vue-i18n/dist/vue-i18n.js"></script>NPM:npminstallv......
  • 突然让做性能测试?试试RunnerGo
    当前,性能测试已经是一名软件测试工程师必须要了解,甚至熟练使用的一项技能了,在工作时可能每次发版都要跑一遍性能,跑一遍自动化。性能测试入门容易,深入则需要太多的知识量,今天这篇文章给大家带来:怎么入门性能测试,怎么样去深入性能测试。突然让做性能测试怎么办?日常工作中,项目改造......
  • R语言二手车汽车销售数据可视化探索:预处理、平滑密度图、地理空间可视化(带自测题)|附代
    全文链接:http://tecdat.cn/?p=27546原文出处:拓端数据部落公众号最近我们被客户要求撰写关于二手车汽车销售数据的研究报告,包括一些图形和统计输出。本文用爬虫采集了汽车销售数据,后来对其进行了扩展,创建这个数据集,其中包括境内的所有二手车辆或者经销商车辆条目数据。这些数据......
  • RunnerGo的相比较JMeter优势,能不能替代?
    目前在性能测试领域市场jmeter占有率是非常高的,主要原因是相对比其他性能测试工具使用更简单(开源、易扩展),功能更强大(满足多种协议的接口),但是随着研发协同的升级,平台化的性能测试工具更能高效的基于团队开展协作,比如我们今天要说的开源测试平台RunnerGo。 性能测试工具平台化优......
  • InnoDB 内存结构
    目录InnoDB架构概念pagepagesizeInnoDB内存架构BufferPool缓冲池LRU算法缓冲池配置ChangeBuffer配置变更缓冲innodb_change_bufferinginnodb_change_buffer_max_sizechangeBuffer的适用场景自适应哈希索引LogBufferInnoDB磁盘架构表索引表空间双写缓冲区RedoLogUndoL......
  • Scrum敏捷开发企业级实战课-Leangoo领歌
    ​课程简介Scrum是目前运用最为广泛的敏捷开发方法,是一个轻量级的项目管理和产品研发管理框架。这是一个两天的实训课程,面向研发管理者、项目经理、产品经理、研发团队等,旨在帮助学员全面系统地学习Scrum和敏捷开发,帮助企业快速启动敏捷实施。课程采用案例讲解+沙盘演练的方......