国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Go】Go 語言教程--GO語言結(jié)構(gòu)體(十三)

這篇具有很好參考價(jià)值的文章主要介紹了【Go】Go 語言教程--GO語言結(jié)構(gòu)體(十三)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

往期回顧:

  • Go 語言教程–介紹(一)
  • Go 語言教程–語言結(jié)構(gòu)(二)
  • Go 語言教程–語言結(jié)構(gòu)(三)
  • Go 語言教程–數(shù)據(jù)類型(四)
  • Go 語言教程–語言變量(五)
  • Go 語言教程–GO語言常量(六)
  • Go 語言教程–GO語言運(yùn)算符(七)
  • Go 語言教程–GO條件和循環(huán)語句(八)
  • Go 語言教程–GO語言函數(shù)(九)
  • Go 語言教程–GO語言變量作用域(十)
  • Go 語言教程–GO語言數(shù)組(十一)
  • Go 語言教程–GO語言指針(十二)

Go 語言中數(shù)組可以存儲(chǔ)同一類型的數(shù)據(jù),但在結(jié)構(gòu)體中我們可以為不同項(xiàng)定義不同的數(shù)據(jù)類型。

結(jié)構(gòu)體是由一系列具有相同類型或不同類型的數(shù)據(jù)構(gòu)成的數(shù)據(jù)集合。

結(jié)構(gòu)體表示一項(xiàng)記錄,比如保存圖書館的書籍記錄,每本書有以下屬性:

  • Title :標(biāo)題
  • Author : 作者
  • Subject:學(xué)科
  • ID:書籍ID

定義結(jié)構(gòu)體

結(jié)構(gòu)體定義需要使用 type 和 struct 語句。struct 語句定義一個(gè)新的數(shù)據(jù)類型,結(jié)構(gòu)體中有一個(gè)或多個(gè)成員。type 語句設(shè)定了結(jié)構(gòu)體的名稱。結(jié)構(gòu)體的格式如下:

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

一旦定義了結(jié)構(gòu)體類型,它就能用于變量的聲明,語法格式如下:

variable_name := structure_variable_type {value1, value2...valuen}
或
variable_name := structure_variable_type { key1: value1, key2: value2..., keyn: valuen}

實(shí)例如下:

實(shí)例

package main

import "fmt"

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


func main() {

    // 創(chuàng)建一個(gè)新的結(jié)構(gòu)體
    fmt.Println(Books{"Go 語言", "www.demo.com", "Go 語言教程", 6495407})

    // 也可以使用 key => value 格式
    fmt.Println(Books{title: "Go 語言", author: "www.demo.com", subject: "Go 語言教程", book_id: 6495407})

    // 忽略的字段為 0 或 空
   fmt.Println(Books{title: "Go 語言", author: "www.demo.com"})
}

輸出結(jié)果為:

{Go 語言 www.demo.com Go 語言教程 6495407}
{Go 語言 www.demo.com Go 語言教程 6495407}
{Go 語言 www.demo.com  0}

訪問結(jié)構(gòu)體成員

如果要訪問結(jié)構(gòu)體成員,需要使用點(diǎn)號(hào) . 操作符,格式為:

結(jié)構(gòu)體.成員名"
結(jié)構(gòu)體類型變量使用 struct 關(guān)鍵字定義,實(shí)例如下:

實(shí)例

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.demo.com"
   Book1.subject = "Go 語言教程"
   Book1.book_id = 6495407

   /* book 2 描述 */
   Book2.title = "Python 教程"
   Book2.author = "www.demo.com"
   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)
}

以上實(shí)例執(zhí)行運(yùn)行結(jié)果為:

Book 1 title : Go 語言
Book 1 author : www.demo.com
Book 1 subject : Go 語言教程
Book 1 book_id : 6495407
Book 2 title : Python 教程
Book 2 author : www.demo.com
Book 2 subject : Python 語言教程
Book 2 book_id : 6495700

結(jié)構(gòu)體作為函數(shù)參數(shù)

你可以像其他數(shù)據(jù)類型一樣將結(jié)構(gòu)體類型作為參數(shù)傳遞給函數(shù)。并以以上實(shí)例的方式訪問結(jié)構(gòu)體變量:

實(shí)例

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.demo.com"
   Book1.subject = "Go 語言教程"
   Book1.book_id = 6495407

   /* book 2 描述 */
   Book2.title = "Python 教程"
   Book2.author = "www.demo.com"
   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)
}

以上實(shí)例執(zhí)行運(yùn)行結(jié)果為:

Book title : Go 語言
Book author : www.demo.com
Book subject : Go 語言教程
Book book_id : 6495407
Book title : Python 教程
Book author : www.demo.com
Book subject : Python 語言教程
Book book_id : 6495700

結(jié)構(gòu)體指針

你可以定義指向結(jié)構(gòu)體的指針類似于其他指針變量,格式如下:

var struct_pointer *Books

以上定義的指針變量可以存儲(chǔ)結(jié)構(gòu)體變量的地址。查看結(jié)構(gòu)體變量地址,可以將 & 符號(hào)放置于結(jié)構(gòu)體變量前:

struct_pointer = &Book1

使用結(jié)構(gòu)體指針訪問結(jié)構(gòu)體成員,使用 “.” 操作符:

struct_pointer.title

接下來讓我們使用結(jié)構(gòu)體指針重寫以上實(shí)例,代碼如下:

實(shí)例

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.demo.com"
   Book1.subject = "Go 語言教程"
   Book1.book_id = 6495407

   /* book 2 描述 */
   Book2.title = "Python 教程"
   Book2.author = "www.demo.com"
   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)
}

以上實(shí)例執(zhí)行運(yùn)行結(jié)果為:文章來源地址http://www.zghlxwxcb.cn/news/detail-586652.html

Book title : Go 語言
Book author : www.demo.com
Book subject : Go 語言教程
Book book_id : 6495407
Book title : Python 教程
Book author : www.demo.com
Book subject : Python 語言教程
Book book_id : 6495700

到了這里,關(guān)于【Go】Go 語言教程--GO語言結(jié)構(gòu)體(十三)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Go】Go 語言教程--GO語言結(jié)構(gòu)體(十三)

    往期回顧: Go 語言教程–介紹(一) Go 語言教程–語言結(jié)構(gòu)(二) Go 語言教程–語言結(jié)構(gòu)(三) Go 語言教程–數(shù)據(jù)類型(四) Go 語言教程–語言變量(五) Go 語言教程–GO語言常量(六) Go 語言教程–GO語言運(yùn)算符(七) Go 語言教程–GO條件和循環(huán)語句(八) Go 語言教程

    2024年02月16日
    瀏覽(19)
  • 【Golang】Golang進(jìn)階系列教程--為什么 Go 語言 struct 要使用 tags

    【Golang】Golang進(jìn)階系列教程--為什么 Go 語言 struct 要使用 tags

    在 Go 語言中,struct 是一種常見的數(shù)據(jù)類型,它可以用來表示復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。在 struct 中,我們可以定義多個(gè)字段,每個(gè)字段可以有不同的類型和名稱。 除了這些基本信息之外,Go 還提供了 struct tags,它可以用來指定 struct 中每個(gè)字段的元信息。 在本文中,我們將探討為什

    2024年02月15日
    瀏覽(40)
  • 【Golang入門教程】Go語言變量的初始化

    【Golang入門教程】Go語言變量的初始化

    強(qiáng)烈推薦 前些天發(fā)現(xiàn)了一個(gè)巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點(diǎn)擊跳轉(zhuǎn)到網(wǎng)站: 人工智能 推薦一個(gè)個(gè)人工作,日常中比較常用的人工智能工具,無需魔法,忍不住分享一下給大家。點(diǎn)擊跳轉(zhuǎn)到網(wǎng)站: 人工智能工具 引言 在Go語言中,變量

    2024年04月17日
    瀏覽(105)
  • 【Go語言】Golang保姆級入門教程 Go初學(xué)者chapter3

    【Go語言】Golang保姆級入門教程 Go初學(xué)者chapter3

    下劃線“_”本身在Go中一個(gè)特殊的標(biāo)識(shí)符,成為空標(biāo)識(shí)符??梢源砣魏纹渌臉?biāo)識(shí)符,但是他對應(yīng)的值就會(huì)被忽略 僅僅被作為站維度使用, 不能作為標(biāo)識(shí)符使用 因?yàn)镚o語言中沒有private public 所以標(biāo)記變量首字母大寫代表其他包可以使用 小寫就是不可使用的 注意:Go語言中

    2024年02月13日
    瀏覽(92)
  • 【Go語言】Golang保姆級入門教程 Go初學(xué)者chapter2

    【Go語言】Golang保姆級入門教程 Go初學(xué)者chapter2

    setting的首選項(xiàng) 一個(gè)程序就是一個(gè)世界 變量是程序的基本組成單位 變量的使用步驟 [外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-zuxG8imp-1691479164956)(https://cdn.staticaly.com/gh/hudiework/img@main/image-20230726152905139.png)] 變量表示內(nèi)存中的一個(gè)存儲(chǔ)區(qū) 注意:

    2024年02月14日
    瀏覽(576)
  • 【Go語言】Golang保姆級入門教程 Go初學(xué)者介紹chapter1

    【Go語言】Golang保姆級入門教程 Go初學(xué)者介紹chapter1

    Golang的學(xué)習(xí)方向 區(qū)塊鏈研發(fā)工程師: 去中心化 虛擬貨幣 金融 Go服務(wù)器端、游戲軟件工程師 : C C++ 處理日志 數(shù)據(jù)打包 文件系統(tǒng) 數(shù)據(jù)處理 很厲害 處理大并發(fā) Golang分布式、云計(jì)算軟件工程師:盛大云 cdn 京東 消息推送 分布式文件系統(tǒng) 2、Golang的應(yīng)用領(lǐng)域 區(qū)塊鏈應(yīng)用:區(qū)塊鏈

    2024年02月15日
    瀏覽(128)
  • 【Golang】Golang進(jìn)階系列教程--為什么說 Go 語言字符串是不可變的?

    【Golang】Golang進(jìn)階系列教程--為什么說 Go 語言字符串是不可變的?

    最近有讀者留言說,平時(shí)在寫代碼的過程中,是會(huì)對字符串進(jìn)行修改的,但網(wǎng)上都說 Go 語言字符串是不可變的,這是為什么呢? 這個(gè)問題本身并不困難,但對于新手來說確實(shí)容易產(chǎn)生困惑,今天就來回答一下。 首先來看看它的底層結(jié)構(gòu): 和切片的結(jié)構(gòu)很像,只不過少了一個(gè)

    2024年02月14日
    瀏覽(98)
  • 【GoLang入門教程】Go語言幾種標(biāo)準(zhǔn)庫介紹(六)

    【GoLang入門教程】Go語言幾種標(biāo)準(zhǔn)庫介紹(六)

    前言 上一篇,我們介紹了image、IO、math三個(gè)庫,這篇我們繼續(xù)介紹剩下的庫 幾種庫 Net庫 (網(wǎng)絡(luò)庫,支持 Socket、HTTP、郵件、RPC、SMTP 等) 在 Go 語言的標(biāo)準(zhǔn)庫中, net 包提供了對網(wǎng)絡(luò)操作的支持,包括基本的網(wǎng)絡(luò)協(xié)議、Socket 編程、HTTP 客戶端和服務(wù)器等。 net 包包含多個(gè)子包,其

    2024年02月02日
    瀏覽(97)
  • 【GoLang入門教程】Go語言幾種標(biāo)準(zhǔn)庫介紹(五)

    【GoLang入門教程】Go語言幾種標(biāo)準(zhǔn)庫介紹(五)

    前言 上一篇,我們介紹了fmt、Go、html 三個(gè)庫,這篇我們繼續(xù)介紹剩下的庫 幾種庫 image庫 (常見圖形格式的訪問及生成) 在 Go 語言的標(biāo)準(zhǔn)庫中, image 包提供了對圖像的基本操作和處理功能。 這個(gè)包定義了 Image 接口和一些基本的圖像類型,同時(shí)也包含了一些實(shí)現(xiàn)了該接口的具

    2024年02月03日
    瀏覽(98)
  • 【GoLang入門教程】Go語言幾種標(biāo)準(zhǔn)庫介紹(四)

    【GoLang入門教程】Go語言幾種標(biāo)準(zhǔn)庫介紹(四)

    前言 上一篇,我們介紹了debug、encoding、flag三個(gè)庫,這篇我們繼續(xù)介紹剩下的庫 幾種庫 fmt庫 (格式化操作) 在 Go 語言的標(biāo)準(zhǔn)庫中, fmt 包提供了格式化輸入輸出的功能。 這個(gè)包包括了一系列函數(shù),用于將數(shù)據(jù)格式化為字符串( fmt.Sprintf )、輸出到控制臺(tái)( fmt.Print 、 fmt.Pri

    2024年02月03日
    瀏覽(98)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包